Tim-Salzmann / l4casadi

Use PyTorch Models with CasADi for data-driven optimization or learning-based optimal control. Supports Acados.
MIT License
337 stars 22 forks source link

Integrating L4Casadi Generated C Code into C++ Project with CMake #9

Closed merdan-9 closed 1 year ago

merdan-9 commented 1 year ago

Hi Tim,

I have generated C code using L4Casadi and would like to integrate it into my existing C++ project. I am currently utilizing CMake as my build system, but I'm unsure about how to properly modify the CMakeLists.txt file to include and link the L4Casadi generated C code.

Can you provide an example of how to modify the CMakeLists.txt file to include the generated C files?

I would really appreciate any guidance or examples. Thank you!

Tim-Salzmann commented 1 year ago

Hi,

This sounds like a problem generally related to CasADi rather than specifically to L4CasADi. E.g. how to integrate exported C CasADi functions in C++? If so, I think the CasADi GitHub would be better suited for this question as I am not an expert here.

However, there are some caveats specific to L4CasADi: libl4casadi must be dynamically linked during compilation and findable by the linker during runtime.

Let me know if the question is actually specific to L4CasADi.

Best Tim

LilHu7 commented 1 year ago

Hi Tim, I have encountered an issue while using the acados_model_solver exported by python.

It reports "segmentation fault" when run the SQP solving code "{model_name}_acados_solve(acados_ocp_capsule);". Have you encountered similar problems and can you provide some solutions of the above issue?

Thanks!

Tim-Salzmann commented 1 year ago

Hi,

I do not think this is directly related to the original question in the issue. Please open a new issue to keep things traceable.

Thanks Tim

Tim-Salzmann commented 1 year ago

@merdan-9 is your original question still an open issue regarding L4CasADi? Otherwise, I would ask you to close the issue for now.

merdan-9 commented 1 year ago

No, the original question regarding L4CasADi is no longer an open issue. Thank you for your prompt response and assistance. Just a gentle reminder for others: when launching the executable in C++, it needs to be started from one directory above the c_generated_code. Thanks again!

alhaddad-m commented 1 year ago

Hi @merdan-9 Actually, I still have some issues related to compiling L4CasADi with CMake. I have formulated CMakeLists.txt and added libraries of L4CasADi as following:

include_directories(
${PROJECT_SOURCE_DIR}/src/_l4c_generated
/home/vladislav/l4casadiv2/l4casadi/libl4casadi/include
/home/vladislav/l4casadiv2/l4casadi/libl4casadi
/home/vladislav/l4casadiv2/l4casadi/l4casadi/lib
)
target_link_libraries(mpc_planner
    /home/vladislav/l4casadiv2/l4casadi/l4casadi/lib/libl4casadi.so
    ${PROJECT_SOURCE_DIR}/src/l4c_generated/liby_expr.so
    ${acados_lib}/libacados.so)

But here I have 2 issues which I think they mention to l4casadi

/usr/bin/ld: libmpb_planners.a(y_expr.cpp.o): undefined reference to symbol '_ZN8L4CasADi4hessEPKdiiPd'
/usr/bin/ld: /home/vladislav/l4casadiv2/l4casadi/l4casadi/lib/libl4casadi.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/mpc_planner.dir/build.make:186: /home/vladislav/bench-mr/bin/mpc_planner] Error 1
make[1]: *** [CMakeFiles/Makefile2:355: CMakeFiles/mpc_planner.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Could you mention how to fix errors here? Thank you!

alhaddad-m commented 1 year ago

Hi Tim! May you have a suggestion for fixing the error above?

Tim-Salzmann commented 1 year ago

Hi,

here is a CMakeList.txt example (without acados) that works for me. Let me know if this helps.

If you are still getting the same error you could try the solution presented in https://stackoverflow.com/questions/19901934/libpthread-so-0-error-adding-symbols-dso-missing-from-command-line

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(TestL4CasADi)

#include_directories(/Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/examples/_l4c_generated)

add_executable(testl4c main.cpp
/Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/examples/_l4c_generated/learned_dyn.hpp
/Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/examples/_l4c_generated/learned_dyn.cpp
)
target_include_directories(testl4c PRIVATE /Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/examples/_l4c_generated)
target_include_directories(testl4c PRIVATE /Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/l4casadi/include)

target_link_directories(testl4c PRIVATE /Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/l4casadi/lib)
target_link_libraries(testl4c l4casadi)

# Linking torch should not be required. But I had to do it otherwise the linker would not find the torch libraries.
set(CMAKE_PREFIX_PATH /Users/TimSalzmann/Documents/Study/PhD/Code/Ideas/L4CasADi/libl4casadi/libtorch)
find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
target_link_libraries(testl4c ${TORCH_LIBRARIES})

set_property(TARGET testl4c PROPERTY CXX_STANDARD 17)
Tim-Salzmann commented 1 year ago

Also, I made a small change to the repo so paths to model files are written to source absolute vs relative. This might be needed to make this work eventually.

alhaddad-m commented 1 year ago

Thank you Tim for reply. Your file has fixed the error messages in compiling C++ package which is compiled successfully. In following there is my CMakeList.txt file for L4CasADi with Acados.

cmake_minimum_required(VERSION 3.0.2)
project(mpc_planner)

add_compile_options(-std=c++14)

set(acados_include "/home/vladislav/acados/include")
set(acados_lib "/home/vladislav/acados/lib")

include_directories(
include
scripts/c_generated_code
${PROJECT_SOURCE_DIR}/scripts/c_generated_code/robot_model_model
${PROJECT_SOURCE_DIR}/scripts/c_generated_code/robot_model_cost
${PROJECT_SOURCE_DIR}/scripts/c_generated_code
${acados_include}
${acados_include}/blasfeo/include
${acados_include}/hpipm/include
${acados_include}/acados/
${acados_include}/qpOASES_e
)

link_directories(${PROJECT_SOURCE_DIR}/scripts/c_generated_code)

add_executable(mpc_planner src/main.cpp src/MPC_Planner.cpp /home/vladislav/bench-mr/src/planners/npfield/test_acados/scripts/_l4c_generated/y_expr.cpp
/home/vladislav/l4casadiv2/l4casadi/l4casadi/include/l4casadi.hpp)
target_link_libraries(mpc_planner
    ${PROJECT_SOURCE_DIR}/scripts/c_generated_code/libacados_ocp_solver_robot_model.so
    ${acados_lib}/libacados.so
    /home/vladislav/bench-mr/src/planners/npfield/test_acados/scripts/_l4c_generated/liby_expr.so
)
target_include_directories(mpc_planner PRIVATE /home/vladislav/bench-mr/src/planners/npfield/test_acados/scripts/_l4c_generated)
target_include_directories(mpc_planner PRIVATE /home/vladislav/l4casadiv2/l4casadi/l4casadi/include)

target_link_directories(mpc_planner PRIVATE /home/vladislav/l4casadiv2/l4casadi/l4casadi/lib)
target_link_libraries(mpc_planner l4casadi)
set(CMAKE_PREFIX_PATH /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch)

find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
target_link_libraries(mpc_planner ${TORCH_LIBRARIES})
set_property(TARGET mpc_planner PROPERTY CXX_STANDARD 17)

However when running the executable file I have the following error.

CUDA is not available! Using CPU.
terminate called after throwing an instance of 'c10::Error'
  what():  open file failed because of errno 2 on fopen: , file path: _l4c_generated/y_expr_forward.pt
Exception raised from RAIIFile at ../caffe2/serialize/file_adapter.cc:21 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::string) + 0x57 (0x7fef902cbd77 in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libc10.so)
frame #1: c10::detail::torchCheckFail(char const*, char const*, unsigned int, std::string const&) + 0x64 (0x7fef90295abb in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libc10.so)
frame #2: caffe2::serialize::FileAdapter::RAIIFile::RAIIFile(std::string const&) + 0x124 (0x7fef7b4ee6e4 in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libtorch_cpu.so)
frame #3: caffe2::serialize::FileAdapter::FileAdapter(std::string const&) + 0x2e (0x7fef7b4ee73e in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libtorch_cpu.so)
frame #4: caffe2::serialize::PyTorchStreamReader::PyTorchStreamReader(std::string const&) + 0x5a (0x7fef7b4ecb8a in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libtorch_cpu.so)
frame #5: torch::jit::import_ir_module(std::shared_ptr<torch::jit::CompilationUnit>, std::string const&, c10::optional<c10::Device>, std::unordered_map<std::string, std::string, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, std::string> > >&, bool, bool) + 0x2c0 (0x7fef7c628820 in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libtorch_cpu.so)
frame #6: torch::jit::import_ir_module(std::shared_ptr<torch::jit::CompilationUnit>, std::string const&, c10::optional<c10::Device>, bool) + 0x7f (0x7fef7c628b9f in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libtorch_cpu.so)
frame #7: torch::jit::load(std::string const&, c10::optional<c10::Device>, bool) + 0xac (0x7fef7c628c7c in /home/vladislav/l4casadiv2/l4casadi/libl4casadi/libtorch/lib/libtorch_cpu.so)
frame #8: L4CasADi::L4CasADiImpl::L4CasADiImpl(std::string, std::string, std::string, bool, bool) + 0x216 (0x7fef90328d26 in /home/vladislav/l4casadiv2/l4casadi/l4casadi/lib/libl4casadi.so)
frame #9: L4CasADi::L4CasADi(std::string, std::string, bool, std::string, bool, bool) + 0x92 (0x7fef903243f2 in /home/vladislav/l4casadiv2/l4casadi/l4casadi/lib/libl4casadi.so)
frame #10: <unknown function> + 0x14d6 (0x7fef770c84d6 in /home/vladislav/bench-mr/src/planners/npfield/test_acados/scripts/_l4c_generated/liby_expr.so)
frame #11: <unknown function> + 0x15ea (0x7fef770c85ea in /home/vladislav/bench-mr/src/planners/npfield/test_acados/scripts/_l4c_generated/liby_expr.so)
frame #12: <unknown function> + 0x11b9a (0x7fef9dd66b9a in /lib64/ld-linux-x86-64.so.2)
frame #13: <unknown function> + 0x11ca1 (0x7fef9dd66ca1 in /lib64/ld-linux-x86-64.so.2)
frame #14: <unknown function> + 0x113a (0x7fef9dd5613a in /lib64/ld-linux-x86-64.so.2)

Aborted (core dumped)

But when running python implementation CUDA was available CUDA is available! Using GPU cuda. Actually I thought the error is related to the path of the file.

Tim-Salzmann commented 1 year ago

Also, I made a small change to the repo so paths to model files are written to source absolute vs relative. This might be needed to make this work eventually.

Did you pull the latest changes to L4CasADi. This should have addressed this issue. Please note that there are new install instructions.

alhaddad-m commented 1 year ago

With the new version,./install.sh is not completed successfully. Maybe the problem in my OS. I have already tested last versions successfully. OS: Ubuntu 20.04 python 3.9 Cmake 3.26.4

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named torch

Defaulting to user installation because normal site-packages is not writeable
Processing /home/vladislav/l4casadiv3/l4casadi
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: torch==2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: casadi>=3.6 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (3.6.3)
Requirement already satisfied: pytest in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (7.4.0)
Requirement already satisfied: filelock in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.12.2)
Requirement already satisfied: typing-extensions in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (4.7.0)
Requirement already satisfied: sympy in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (1.12)
Requirement already satisfied: networkx in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.1)
Requirement already satisfied: jinja2 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.1.2)
Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.99)
Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.99)
Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.101)
Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (8.5.0.96)
Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.10.3.66)
Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (10.9.0.58)
Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (10.2.10.91)
Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.4.0.1)
Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.4.91)
Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (2.14.3)
Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.91)
Requirement already satisfied: triton==2.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0->l4casadi==0.0.1) (45.2.0)
Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0->l4casadi==0.0.1) (0.34.2)
Requirement already satisfied: cmake in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch==2.0->l4casadi==0.0.1) (3.26.4)
Requirement already satisfied: lit in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch==2.0->l4casadi==0.0.1) (16.0.6)
Requirement already satisfied: numpy in /home/vladislav/.local/lib/python3.9/site-packages (from casadi>=3.6->l4casadi==0.0.1) (1.25.1)
Requirement already satisfied: iniconfig in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: packaging in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (23.1)
Requirement already satisfied: pluggy<2.0,>=0.12 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (1.2.0)
Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (1.1.1)
Requirement already satisfied: tomli>=1.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (2.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from jinja2->torch==2.0->l4casadi==0.0.1) (2.1.3)
Requirement already satisfied: mpmath>=0.19 in /home/vladislav/.local/lib/python3.9/site-packages (from sympy->torch==2.0->l4casadi==0.0.1) (1.3.0)
Building wheels for collected packages: l4casadi
  Building wheel for l4casadi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for l4casadi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [93 lines of output]

      --------------------------------------------------------------------------------
      -- Trying 'Ninja' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      -- The C compiler identification is GNU 9.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The CXX compiler identification is GNU 9.4.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done (0.3s)
      -- Generating done (0.0s)
      -- Build files have been written to: /home/vladislav/l4casadiv3/l4casadi/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Ninja' generator - success
      --------------------------------------------------------------------------------

      Configuring Project
        Working directory:
          /home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
        Command:
          /tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv3/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_BUILD_TYPE:STRING=Release

      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      CMake Error at CMakeLists.txt:6 (find_package):
        By not providing "FindTorch.cmake" in CMAKE_MODULE_PATH this project has
        asked CMake to find a package configuration file provided by "Torch", but
        CMake did not find one.

        Could not find a package configuration file provided by "Torch" with any of
        the following names:

          TorchConfig.cmake
          torch-config.cmake

        Add the installation prefix of "Torch" to CMAKE_PREFIX_PATH or set
        "Torch_DIR" to a directory containing one of the above files.  If "Torch"
        provides a separate development package or SDK, be sure it has been
        installed.

      -- Configuring incomplete, errors occurred!
      Traceback (most recent call last):
        File "/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 666, in setup
          env = cmkr.configure(
        File "/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/skbuild/cmaker.py", line 357, in configure
          raise SKBuildError(msg)

      An error occurred while configuring with CMake.
        Command:
          /tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv3/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-feher6oj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_BUILD_TYPE:STRING=Release
        Source directory:
          /home/vladislav/l4casadiv3/l4casadi/libl4casadi
        Working directory:
          /home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
      Please see CMake's output for more information.

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for l4casadi
Failed to build l4casadi
ERROR: Could not build wheels for l4casadi, which is required to install pyproject.toml-based projects
Tim-Salzmann commented 1 year ago

PyTorch has to be installed first! E.g. pip install torch and the install script has to be run from a terminal with activated environment.


Edit: I see torch is installed.. this is weird. Could you try running the following two commands and report the output:

python -c "import torch; print(torch.__version__)" and python3 -c "import torch; print(torch.__version__)"

Thanks

alhaddad-m commented 1 year ago

Hi Tim, I have torch version 2.0.0+cu117 with python3 (it is 3.8) and python3.9. With python (Python 2.7.18) there is no torch. Your repo needs python 3.9 for which torch is installed.

vladislav@lab:~/l4casadiv3/l4casadi$ python -c "import torch; print(torch.__version__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named torch
vladislav@lab:~/l4casadiv3/l4casadi$ python3.9 -c "import torch; print(torch.__version__)"
2.0.0+cu117
vladislav@lab:~/l4casadiv3/l4casadi$ python3 -c "import torch; print(torch.__version__)"
2.0.0+cu117
vladislav@lab:~/l4casadiv3/l4casadi$ 
Tim-Salzmann commented 1 year ago

I updated the install script. Please have another try

alhaddad-m commented 1 year ago

Thank you Tim. I have reinstalled package but the error is the same

vladislav@lab:~/l4casadiv3$ git clone https://github.com/Tim-Salzmann/l4casadi.git
Cloning into 'l4casadi'...
remote: Enumerating objects: 163, done.
remote: Counting objects: 100% (104/104), done.
remote: Compressing objects: 100% (70/70), done.
remote: Total 163 (delta 40), reused 81 (delta 23), pack-reused 59
Receiving objects: 100% (163/163), 40.19 KiB | 979.00 KiB/s, done.
Resolving deltas: 100% (54/54), done.
vladislav@lab:~/l4casadiv3$ cd l4casadi/
vladislav@lab:~/l4casadiv3/l4casadi$ ./install.sh 
/home/vladislav/.local/lib/python3.8/site-packages/torch
Defaulting to user installation because normal site-packages is not writeable
Processing /home/vladislav/l4casadiv3/l4casadi
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: torch==2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: casadi>=3.6 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (3.6.3)
Requirement already satisfied: pytest in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (7.4.0)
Requirement already satisfied: filelock in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.12.2)
Requirement already satisfied: typing-extensions in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (4.7.0)
Requirement already satisfied: sympy in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (1.12)
Requirement already satisfied: networkx in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.1)
Requirement already satisfied: jinja2 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.1.2)
Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.99)
Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.99)
Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.101)
Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (8.5.0.96)
Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.10.3.66)
Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (10.9.0.58)
Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (10.2.10.91)
Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.4.0.1)
Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.4.91)
Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (2.14.3)
Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.91)
Requirement already satisfied: triton==2.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0->l4casadi==0.0.1) (45.2.0)
Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0->l4casadi==0.0.1) (0.34.2)
Requirement already satisfied: cmake in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch==2.0->l4casadi==0.0.1) (3.26.4)
Requirement already satisfied: lit in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch==2.0->l4casadi==0.0.1) (16.0.6)
Requirement already satisfied: numpy in /home/vladislav/.local/lib/python3.9/site-packages (from casadi>=3.6->l4casadi==0.0.1) (1.25.1)
Requirement already satisfied: iniconfig in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: packaging in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (23.1)
Requirement already satisfied: pluggy<2.0,>=0.12 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (1.2.0)
Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (1.1.1)
Requirement already satisfied: tomli>=1.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (2.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from jinja2->torch==2.0->l4casadi==0.0.1) (2.1.3)
Requirement already satisfied: mpmath>=0.19 in /home/vladislav/.local/lib/python3.9/site-packages (from sympy->torch==2.0->l4casadi==0.0.1) (1.3.0)
Building wheels for collected packages: l4casadi
  Building wheel for l4casadi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for l4casadi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [106 lines of output]

      --------------------------------------------------------------------------------
      -- Trying 'Ninja' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      -- The C compiler identification is GNU 9.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The CXX compiler identification is GNU 9.4.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done (0.3s)
      -- Generating done (0.0s)
      -- Build files have been written to: /home/vladislav/l4casadiv3/l4casadi/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Ninja' generator - success
      --------------------------------------------------------------------------------

      Configuring Project
        Working directory:
          /home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
        Command:
          /tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv3/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_BUILD_TYPE:STRING=Release

      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      -- The C compiler identification is GNU 9.4.0
      -- The CXX compiler identification is GNU 9.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Found CUDA: /usr (found version "10.1")
      -- The CUDA compiler identification is NVIDIA 10.1.243
      -- Detecting CUDA compiler ABI info
      -- Detecting CUDA compiler ABI info - done
      -- Check for working CUDA compiler: /usr/bin/nvcc - skipped
      -- Detecting CUDA compile features
      -- Detecting CUDA compile features - done
      -- Caffe2: CUDA detected: 10.1
      -- Caffe2: CUDA nvcc is: /usr/bin/nvcc
      -- Caffe2: CUDA toolkit directory: /usr
      CMake Error at /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Caffe2/public/cuda.cmake:55 (message):
        PyTorch requires CUDA 11.0 or above.
      Call Stack (most recent call first):
        /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:88 (include)
        /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
        CMakeLists.txt:6 (find_package)

      -- Configuring incomplete, errors occurred!
      Traceback (most recent call last):
        File "/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 666, in setup
          env = cmkr.configure(
        File "/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/skbuild/cmaker.py", line 357, in configure
          raise SKBuildError(msg)

      An error occurred while configuring with CMake.
        Command:
          /tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv3/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-9hsk4etj/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_BUILD_TYPE:STRING=Release
        Source directory:
          /home/vladislav/l4casadiv3/l4casadi/libl4casadi
        Working directory:
          /home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
      Please see CMake's output for more information.

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for l4casadi
Failed to build l4casadi
ERROR: Could not build wheels for l4casadi, which is required to install pyproject.toml-based projects
vladislav@lab:~/l4casadiv3/l4casadi$ 

Edit: I have tried python3.9 -m pip install . (as before) to insure using python3.9 instead of 3.8 but also the same error

Tim-Salzmann commented 1 year ago

First of all - apologies for breaking the install for you!

The error actually changed slightly. Now, the problem seems to be the following: PyTorch requires CUDA 11.0 or above.

This makes sense given that PyTorch > 2.0 requires CUDA 11.0 and you have installed CUDA 10.1. However, I do not understand why it was working previuously on your setup. Did you change anything on your setup (e.g. downgraded CUDA)?

Tim-Salzmann commented 1 year ago

One possible solution is that you have both CUDA 10 and 11 installed?! What command did you previously use to install l4casadi with GPU support?

Make sure to use the same path to nvcc (11) as before CUDACXX=<PATH_TO_nvcc> ./install.sh

alhaddad-m commented 1 year ago

Hi Tim! No problem, thank you for hints for fixing errors. Actually I have fixed mismatches in cuda and now I have cuda 12.2 and nvcc 12.2 as it is shown.

vladislav@lab:/usr/local/cuda-12.2/bin$ ./nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Aug_15_22:02:13_PDT_2023
Cuda compilation tools, release 12.2, V12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0
vladislav@lab:/usr/local/cuda-12.2/bin$ pwd
/usr/local/cuda-12.2/bin
vladislav@lab:/usr/local/cuda-12.2/bin$ nvidia-smi 
Fri Sep  1 17:55:05 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.05             Driver Version: 535.104.05   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 2070        On  | 00000000:01:00.0  On |                  N/A |
| 17%   35C    P8               8W / 175W |    333MiB /  8192MiB |      1%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      1276      G   /usr/lib/xorg/Xorg                          175MiB |
|    0   N/A  N/A      1538      G   /usr/bin/gnome-shell                         30MiB |
|    0   N/A  N/A      2364      G   ...ures=SpareRendererForSitePerProcess       41MiB |
|    0   N/A  N/A      5054      G   ...7266680,16881132031536840468,262144       83MiB |
+---------------------------------------------------------------------------------------+

After all, I have run install.py as following but the error still the same

vladislav@lab:~/l4casadiv3/l4casadi$ CUDACXX=/usr/local/cuda-12.2/bin ./install.sh
/home/vladislav/.local/lib/python3.8/site-packages/torch
Defaulting to user installation because normal site-packages is not writeable
Processing /home/vladislav/l4casadiv3/l4casadi
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: torch==2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: casadi>=3.6 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (3.6.3)
Requirement already satisfied: pytest in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.1) (7.4.0)
Requirement already satisfied: filelock in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.12.2)
Requirement already satisfied: typing-extensions in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (4.7.0)
Requirement already satisfied: sympy in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (1.12)
Requirement already satisfied: networkx in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.1)
Requirement already satisfied: jinja2 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (3.1.2)
Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.99)
Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.99)
Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.101)
Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (8.5.0.96)
Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.10.3.66)
Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (10.9.0.58)
Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (10.2.10.91)
Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.4.0.1)
Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.4.91)
Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (2.14.3)
Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (11.7.91)
Requirement already satisfied: triton==2.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from torch==2.0->l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0->l4casadi==0.0.1) (45.2.0)
Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch==2.0->l4casadi==0.0.1) (0.34.2)
Requirement already satisfied: cmake in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch==2.0->l4casadi==0.0.1) (3.26.4)
Requirement already satisfied: lit in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch==2.0->l4casadi==0.0.1) (16.0.6)
Requirement already satisfied: numpy in /home/vladislav/.local/lib/python3.9/site-packages (from casadi>=3.6->l4casadi==0.0.1) (1.25.1)
Requirement already satisfied: iniconfig in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (2.0.0)
Requirement already satisfied: packaging in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (23.1)
Requirement already satisfied: pluggy<2.0,>=0.12 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (1.2.0)
Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (1.1.1)
Requirement already satisfied: tomli>=1.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from pytest->l4casadi==0.0.1) (2.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from jinja2->torch==2.0->l4casadi==0.0.1) (2.1.3)
Requirement already satisfied: mpmath>=0.19 in /home/vladislav/.local/lib/python3.9/site-packages (from sympy->torch==2.0->l4casadi==0.0.1) (1.3.0)
Building wheels for collected packages: l4casadi
  Building wheel for l4casadi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for l4casadi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [95 lines of output]

      --------------------------------------------------------------------------------
      -- Trying 'Ninja' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      -- The C compiler identification is GNU 9.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The CXX compiler identification is GNU 9.4.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done (1.5s)
      -- Generating done (0.0s)
      -- Build files have been written to: /home/vladislav/l4casadiv3/l4casadi/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Ninja' generator - success
      --------------------------------------------------------------------------------

      Configuring Project
        Working directory:
          /home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
        Command:
          /tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv3/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_BUILD_TYPE:STRING=Release

      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      -- Could NOT find CUDA (missing: CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (found version "10.1")
      CMake Warning at /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Caffe2/public/cuda.cmake:31 (message):
        Caffe2: CUDA cannot be found.  Depending on whether you are building Caffe2
        or a Caffe2 dependent library, the next warning / error will give you more
        info.
      Call Stack (most recent call first):
        /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:88 (include)
        /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
        CMakeLists.txt:6 (find_package)

      CMake Error at /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:90 (message):
        Your installed Caffe2 version uses CUDA but I cannot find the CUDA
        libraries.  Please set the proper CUDA prefixes and / or install CUDA.
      Call Stack (most recent call first):
        /home/vladislav/.local/lib/python3.8/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
        CMakeLists.txt:6 (find_package)

      -- Configuring incomplete, errors occurred!
      Traceback (most recent call last):
        File "/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 666, in setup
          env = cmkr.configure(
        File "/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/skbuild/cmaker.py", line 357, in configure
          raise SKBuildError(msg)

      An error occurred while configuring with CMake.
        Command:
          /tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv3/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DCMAKE_MAKE_PROGRAM:FILEPATH=/tmp/pip-build-env-azk30wqn/overlay/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_BUILD_TYPE:STRING=Release
        Source directory:
          /home/vladislav/l4casadiv3/l4casadi/libl4casadi
        Working directory:
          /home/vladislav/l4casadiv3/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
      Please see CMake's output for more information.

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for l4casadi
Failed to build l4casadi
ERROR: Could not build wheels for l4casadi, which is required to install pyproject.toml-based projects
alhaddad-m commented 1 year ago

In last update (10 minutes ago) there is no install.sh file:

vladislav@lab:~/l4casadiv3/l4casadi$ CUDACXX=/usr/local/cuda-12.2/bin ./install.sh
bash: ./install.sh: No such file or directory
Tim-Salzmann commented 1 year ago

Hi,

Yes I tried to simplifiy the installation procedure yet again. I'm sorry for the confusion. Please make a new pull as there are some changes in the last minutes. According to the Readme the instructions are as follows:

Install all build dependencies via

pip install -r requirements_build.txt

With the python environment activated install L4CasADi via

pip install . --no-build-isolation

Further, as you can see here https://pytorch.org/get-started/locally/ PyTorch does not support CUDA 12 but only CUDA 11 which explains your latetst error.

alhaddad-m commented 1 year ago

Hi Tim! With the last version it still bash: ./install.sh: No such file or directory . I have run installation without cuda without problems.

Tim-Salzmann commented 1 year ago

Hi Muhammad,

yes install.sh is not required anymore and was therefore deleted.

please install via pip install . --no-build-isolation

or for GPU

CUDACXX=<PATH_TO_nvcc> pip install . --no-build-isolation

alhaddad-m commented 1 year ago

Hi Tim. Actually I couldn't install it with cuda from source, so I have tried to install it as pip install and it is installed without errors. I would ask you to correct in ReadMe, installation with cuda from source (it is now as the same as from pip). Finally, can we return to the first question :)? What is the new now to implement it using CMake? Sorry, but I have confused and I am a new with these libraries. Now with installing as pip install how I can mention in CMake to l4casadi?

Best, Muhammad

Tim-Salzmann commented 1 year ago

Hi Muhammad,

Actually I couldn't install it with cuda from source

Please post the full error message you are getting when trying to install from source with CUDA so I can fix it for everyone.

What is the new now to implement it using CMake

Besides the install procedure nothing changed except paths to traced models are now absolute when exported which should fix your latest error. (and the parameter model_expects_batch_dimdefaults to True now)

terminate called after throwing an instance of 'c10::Error' what(): open file failed because of errno 2 on fopen: , file path: _l4c_generated/y_expr_forward.pt

One change you will have to make in your CMake is to link to the libtorch in your python environment set(CMAKE_PREFIX_PATH /home/vladislav/.local/lib/python3.8/site-packages/torch)

Let me know if this helps

alhaddad-m commented 1 year ago

Hi Tim, Firstly, I would thank you for this library and your patience. Finally as I have mentioned before I could install it only as pip install. The whole error message while installing from source is

vladislav@lab:~/l4casadiv4/l4casadi$ CUDACXX=/usr/local/cuda/bin/nvcc python3.9 -m pip install . --no-build-isolation
Defaulting to user installation because normal site-packages is not writeable
Processing /home/vladislav/l4casadiv4/l4casadi
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: torch>=2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.2) (2.0.0)
Requirement already satisfied: casadi>=3.6 in /home/vladislav/.local/lib/python3.9/site-packages (from l4casadi==0.0.2) (3.6.3)
Requirement already satisfied: numpy in /home/vladislav/.local/lib/python3.9/site-packages (from casadi>=3.6->l4casadi==0.0.2) (1.25.1)
Requirement already satisfied: filelock in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (3.12.2)
Requirement already satisfied: typing-extensions in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (4.7.0)
Requirement already satisfied: sympy in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (1.12)
Requirement already satisfied: networkx in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (3.1)
Requirement already satisfied: jinja2 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (3.1.2)
Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.7.99)
Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.7.99)
Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.7.101)
Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (8.5.0.96)
Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.10.3.66)
Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (10.9.0.58)
Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (10.2.10.91)
Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.4.0.1)
Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.7.4.91)
Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (2.14.3)
Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (11.7.91)
Requirement already satisfied: triton==2.0.0 in /home/vladislav/.local/lib/python3.9/site-packages (from torch>=2.0->l4casadi==0.0.2) (2.0.0)
Requirement already satisfied: setuptools in /home/vladislav/.local/lib/python3.9/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=2.0->l4casadi==0.0.2) (68.1.2)
Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=2.0->l4casadi==0.0.2) (0.34.2)
Requirement already satisfied: cmake in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch>=2.0->l4casadi==0.0.2) (3.27.2)
Requirement already satisfied: lit in /home/vladislav/.local/lib/python3.9/site-packages (from triton==2.0.0->torch>=2.0->l4casadi==0.0.2) (16.0.6)
Requirement already satisfied: MarkupSafe>=2.0 in /home/vladislav/.local/lib/python3.9/site-packages (from jinja2->torch>=2.0->l4casadi==0.0.2) (2.1.3)
Requirement already satisfied: mpmath>=0.19 in /home/vladislav/.local/lib/python3.9/site-packages (from sympy->torch>=2.0->l4casadi==0.0.2) (1.3.0)
Building wheels for collected packages: l4casadi
  Building wheel for l4casadi (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for l4casadi (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [85 lines of output]

      --------------------------------------------------------------------------------
      -- Trying 'Ninja' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      -- The C compiler identification is GNU 9.4.0
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The CXX compiler identification is GNU 9.4.0
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done (0.3s)
      -- Generating done (0.0s)
      -- Build files have been written to: /home/vladislav/l4casadiv4/l4casadi/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Ninja' generator - success
      --------------------------------------------------------------------------------

      Configuring Project
        Working directory:
          /home/vladislav/l4casadiv4/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
        Command:
          /home/vladislav/.local/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv4/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/home/vladislav/.local/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv4/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/home/vladislav/.local/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_NumPy_INCLUDE_DIRS:PATH=/home/vladislav/.local/lib/python3.9/site-packages/numpy/core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_NumPy_INCLUDE_DIRS:PATH=/home/vladislav/.local/lib/python3.9/site-packages/numpy/core/include -DCMAKE_MAKE_PROGRAM:FILEPATH=/home/vladislav/.local/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_TORCH_PATH=/home/vladislav/.local/lib/python3.9/site-packages/torch -DCMAKE_BUILD_TYPE:STRING=Release

      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      Not searching for unused variables given on the command line.

      CMake Error at /home/vladislav/.local/lib/python3.9/site-packages/cmake/data/share/cmake-3.27/Modules/CMakeDetermineCUDACompiler.cmake:277 (message):
        CMAKE_CUDA_ARCHITECTURES must be non-empty if set.
      Call Stack (most recent call first):
        /home/vladislav/.local/lib/python3.9/site-packages/torch/share/cmake/Caffe2/public/cuda.cmake:47 (enable_language)
        /home/vladislav/.local/lib/python3.9/site-packages/torch/share/cmake/Caffe2/Caffe2Config.cmake:88 (include)
        /home/vladislav/.local/lib/python3.9/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:68 (find_package)
        CMakeLists.txt:7 (find_package)

      -- Configuring incomplete, errors occurred!
      Traceback (most recent call last):
        File "/home/vladislav/.local/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 666, in setup
          env = cmkr.configure(
        File "/home/vladislav/.local/lib/python3.9/site-packages/skbuild/cmaker.py", line 357, in configure
          raise SKBuildError(msg)

      An error occurred while configuring with CMake.
        Command:
          /home/vladislav/.local/lib/python3.9/site-packages/cmake/data/bin/cmake /home/vladislav/l4casadiv4/l4casadi/libl4casadi -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=/home/vladislav/.local/lib/python3.9/site-packages/ninja/data/bin/ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/vladislav/l4casadiv4/l4casadi/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/home/vladislav/.local/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3.9 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_NumPy_INCLUDE_DIRS:PATH=/home/vladislav/.local/lib/python3.9/site-packages/numpy/core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3.9 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_NumPy_INCLUDE_DIRS:PATH=/home/vladislav/.local/lib/python3.9/site-packages/numpy/core/include -DCMAKE_MAKE_PROGRAM:FILEPATH=/home/vladislav/.local/lib/python3.9/site-packages/ninja/data/bin/ninja -DCMAKE_TORCH_PATH=/home/vladislav/.local/lib/python3.9/site-packages/torch -DCMAKE_BUILD_TYPE:STRING=Release
        Source directory:
          /home/vladislav/l4casadiv4/l4casadi/libl4casadi
        Working directory:
          /home/vladislav/l4casadiv4/l4casadi/_skbuild/linux-x86_64-3.9/cmake-build
      Please see CMake's output for more information.

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for l4casadi
Failed to build l4casadi
ERROR: Could not build wheels for l4casadi, which is required to install pyproject.toml-based projects

For implementation with CMake I figured it out with your file. However before your last reply I have used set(CMAKE_PREFIX_PATH /home/vladislav/.local/lib/python3.9/site-packages/torch/share/cmake/Torch) and In addition to setting LD_LIBRARY_PATH it works well.

Best Kinds, Muhammad

Tim-Salzmann commented 1 year ago

The whole error message while installing from source is ...

I think this might be due to a previous build not being successful. Please delete the ./_skbuild folder or do a fresh clone to an empty folder.

For implementation with CMake I figured it out with your file. However before your last reply I have used set(CMAKE_PREFIX_PATH /home/vladislav/.local/lib/python3.9/site-packages/torch/share/cmake/Torch) and In addition to setting LD_LIBRARY_PATH it works well.

You are correct, setting LD_LIBRARY_PATHis necessary too.

If everything works now feel free to close this issue :)

alhaddad-m commented 1 year ago

delete the ./_skbuild folder

Yes It is now installed from source after removing _skbuild.

I would remind you to correct the following ReadMe (both installations are the same)

GPU (CUDA) Installation Install L4CasADi via CUDACXX= pip install l4casadi --no-build-isolation or CUDACXX= pip install l4casadi --no-build-isolation to build from source.

If everything works now feel free to close this issue :)

I can't close it because I didn't open it. There is no option to close it.

Best, Muhammad

Tim-Salzmann commented 1 year ago

Thanks, I fixed the README. Further, I provided a quick example of how to integrate L4CasADi in C++ in examples/cpp_usage.