-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Undefined symbol: cufftExecC2R #66
Comments
The undefined cufftExecC2R problem has been around for quite a long and I have never been able even to understand where it is coming from since I was never able to reproduce it. I even asked in the NVidia support forums without any success: https://forums.developer.nvidia.com/t/undefined-symbol-cufftexecc2r-after-installing-cmake-python-library/284151/2 I installed the library with the new pybind11 version in a clean environment before merging #65 and I was able to run Unfortunately, I don't have time now to try to use a different package for the bindings. |
Today I managed to find the cause for this problem. I have to admit that the problem is related to cmake (and my cuda installation) and not the pybind11 package. I did some modifications of the project(gpuRIR LANGUAGES CXX CUDA)
find_package(CUDAToolkit REQUIRED)
# status messages for debugging
message(STATUS "Found CUDA: ${CUDAToolkit_VERSION}")
message(STATUS "CUDAToolkit_BIN_DIR: ${CUDAToolkit_BIN_DIR}")
message(STATUS "CUDAToolkit_NVCC_EXECUTABLE: ${CUDAToolkit_NVCC_EXECUTABLE}")
message(STATUS "CMAKE_CUDA_COMPILER: ${CMAKE_CUDA_COMPILER}")
...
...
target_link_libraries(gpuRIR_bind PRIVATE CUDA::curand CUDA::cufft)
target_link_libraries(gpuRIR_bind PRIVATE gpuRIRcu pybind11::module)
This is very strange, it finds an old CUDA installation (v10.1.243) and
This time I could load the correct toolkit and no problem appeared when running the example files. After this I decided to fully uninstall cuda toolkit from my system and to install the cuda-toolkit into a fresh conda environment with:
@DavidDiazGuerra If you like, I can make a PR for the updated CMakeLists.txt file. In addition, I believe it would be a good idea to add a Known Issues section to the README file. |
It's really good you found this out. I have no idea why CMake should be finding an old CUDA installation without the CUDA Toolkit, but the CUDA integration with CMake has been bringing problems from the very beginning of the library (I guess that me having zero previous experience with CMake didn't help either). Feel free to send a PR updating the CMakeLists and adding some notes in the README, I will be happy to accept it. Thanks a lot. |
What does (make sure to delete the old build artifacts before: rm -r gpuRIR.egg-info/ && rm -r build/) mean? |
The |
With the updated binding, package installation works but importing the gpuRIR package raises the following error across various Python versions (3.8-3.12) on my Ubuntu 20.04 system.
What I tried (without success):
echo $LD_LIBRARY_PATH
shows/usr/lib/cuda/include:/usr/lib/cuda/lib64
To me, the issue must be related to the updated binding (#65 ), since I had successfully run the examples using python 3.8, 3.9 and 3.10 before the update.
Are there any considerations regarding the use of a different package for the bindings, e.g. such as CuPy?
The issue is related to #50, #54, #42
The text was updated successfully, but these errors were encountered: