DavidDiazGuerra / gpuRIR

Python library for Room Impulse Response (RIR) simulation with GPU acceleration
GNU Affero General Public License v3.0
474 stars 91 forks source link

from gpuRIR_bind import gpuRIR_bind ImportError: DLL load failed while importing gpuRIR_bind: The specified module could not be found #53

Open Underman30 opened 8 months ago

Underman30 commented 8 months ago

I've tried to install this package by both pip install and setup.py, and their generated files were different in envs/Lib/site-package/..., there's no gpuRIR_bind.py when installed by pip and the setup.py running logs were below: I have just one GPU and I've imported torch before the gpuRIR but make no sense btw, could you send me the site-package of gpuRIR directly?

D:\Anaconda3\envs\neural_srp-main\python.exe setup.py install running install D:\Anaconda3\envs\neural_srp-main\lib\site-packages\setuptools_distutils\cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !!

    ********************************************************************************
    Please avoid running ``setup.py`` directly.
    Instead, use pypa/build, pypa/installer or other
    standards-based tools.

    See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
    ********************************************************************************

!! self.initialize_options() D:\Anaconda3\envs\neural_srp-main\lib\site-packages\setuptools_distutils\cmd.py:66: EasyInstallDeprecationWarning: easy_install command is deprecated. !!

    ********************************************************************************
    Please avoid running ``setup.py`` and ``easy_install``.
    Instead, use pypa/build, pypa/installer or other
    standards-based tools.

    See https://github.com/pypa/setuptools/issues/917 for details.
    ********************************************************************************

!! self.initialize_options() running bdist_egg running egg_info writing gpuRIR.egg-info\PKG-INFO writing dependency_links to gpuRIR.egg-info\dependency_links.txt writing top-level names to gpuRIR.egg-info\top_level.txt reading manifest file 'gpuRIR.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE' writing manifest file 'gpuRIR.egg-info\SOURCES.txt' installing library code to build\bdist.win-amd64\egg running install_lib running build_py copying gpuRIR__init__.py -> build\lib.win-amd64-cpython-38\gpuRIR running build_ext setup.py:32: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead. cmake_version = LooseVersion(re.search(r'version\s*([\d.]+)', out.decode()).group(1)) CMake Warning (dev) at CMakeLists.txt:6 (find_package): Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake --help-policy CMP0146" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:9 (include): Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake --help-policy CMP0146" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers. Use -Wno-dev to suppress it.

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

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

CMake Deprecation Warning at third_party/pybind11/tools/pybind11Tools.cmake:8 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions. Call Stack (most recent call first): third_party/pybind11/CMakeLists.txt:33 (include)

CMake Warning (dev) at third_party/pybind11/tools/FindPythonLibsNew.cmake:60 (find_package): Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first): third_party/pybind11/tools/pybind11Tools.cmake:16 (find_package) third_party/pybind11/CMakeLists.txt:33 (include) This warning is for project developers. Use -Wno-dev to suppress it.

-- pybind11 v2.2.0 -- Configuring done (3.2s) CMake Warning (dev) in CMakeLists.txt: Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. Run "cmake --help-policy CMP0104" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

CUDA_ARCHITECTURES is empty for target "gpuRIRcu". This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) in CMakeLists.txt: Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. Run "cmake --help-policy CMP0104" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

CUDA_ARCHITECTURES is empty for target "gpuRIRcu". This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) in CMakeLists.txt: Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. Run "cmake --help-policy CMP0104" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

CUDA_ARCHITECTURES is empty for target "gpuRIRcu". This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) in CMakeLists.txt: Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. Run "cmake --help-policy CMP0104" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

CUDA_ARCHITECTURES is empty for target "gpuRIRcu". This warning is for project developers. Use -Wno-dev to suppress it.

-- Generating done (0.0s) -- Build files have been written to: D:/PyCharm/PycharmProjects/gpuRIR/build/temp.win-amd64-cpython-38/Release ������ .NET Framework MSBuild �汾 17.8.3+195e7f5a3

gpuRIRcu.vcxproj -> D:\PyCharm\PycharmProjects\gpuRIR\build\temp.win-amd64-cpython-38\Release\Release\gpuRIRcu.lib gpuRIR_bind.vcxproj -> D:\PyCharm\PycharmProjects\gpuRIR\build\lib.win-amd64-cpython-38\gpuRIR_bind.cp38-win_amd64.pyd creating build\bdist.win-amd64\egg creating build\bdist.win-amd64\egg\gpuRIR copying build\lib.win-amd64-cpython-38\gpuRIR__init.py -> build\bdist.win-amd64\egg\gpuRIR copying build\lib.win-amd64-cpython-38\gpuRIR_bind.cp38-win_amd64.pyd -> build\bdist.win-amd64\egg byte-compiling build\bdist.win-amd64\egg\gpuRIR\init.py to init__.cpython-38.pyc creating stub loader for gpuRIR_bind.cp38-win_amd64.pyd byte-compiling build\bdist.win-amd64\egg\gpuRIR_bind.py to gpuRIR_bind.cpython-38.pyc creating build\bdist.win-amd64\egg\EGG-INFO copying gpuRIR.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO copying gpuRIR.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO copying gpuRIR.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO copying gpuRIR.egg-info\not-zip-safe -> build\bdist.win-amd64\egg\EGG-INFO copying gpuRIR.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO writing build\bdist.win-amd64\egg\EGG-INFO\native_libs.txt creating 'dist\gpuRIR-1.2.0-py3.8-win-amd64.egg' and adding 'build\bdist.win-amd64\egg' to it removing 'build\bdist.win-amd64\egg' (and everything under it) Processing gpuRIR-1.2.0-py3.8-win-amd64.egg creating d:\anaconda3\envs\neural_srp-main\lib\site-packages\gpuRIR-1.2.0-py3.8-win-amd64.egg Extracting gpuRIR-1.2.0-py3.8-win-amd64.egg to d:\anaconda3\envs\neural_srp-main\lib\site-packages Adding gpuRIR 1.2.0 to easy-install.pth file

Installed d:\anaconda3\envs\neural_srp-main\lib\site-packages\gpurir-1.2.0-py3.8-win-amd64.egg Processing dependencies for gpuRIR==1.2.0 Finished processing dependencies for gpuRIR==1.2.0

and these are the generated files: image but the example.py still runs with this error: 屏幕截图 2024-01-11 231306

DavidDiazGuerra commented 7 months ago

I cannot send you the package folder of gpuRIR since I do not have any Windows PC with CUDA right now. In any case, I do not think that would work if we weren't using exactly the same versions of Python and CUDA.

From the logs and images you sent, it seems like the installation process didn't create the DLL with the compiled C++ and CUDA part of the library but I do not know why that happened since the log seems to be normal. Unfortunately, I do not have a Windows computer to try to reproduce the issue.

Underman30 commented 6 months ago

hi David, do you know how to change the c++ complier from MSVC++ to GCC? Should I change the cmakeList.txt or somthing? I noticed that you point in Readme that if we use pytorch then we should comply with GCC. But I install the Visual Studio 2022 and the complier is default with MSVC++. By the way, what's the differences between those branches?

Underman30 commented 6 months ago

image My generated gpuRIR_bind.py was like this, is this normal? and how can I check whether gpuRIR_bind.cp38-win_amd64 is OK?

htz1234 commented 6 months ago

I have met the same problem. I can compile the package on windows pc with CUDA 12.3, but it did not generate any dlls. However it can run on a linux server.

htz1234 commented 6 months ago

add "import torch" before "import gpuRIR" might be helpful to this problem