ashawkey / torch-ngp

A pytorch CUDA extension implementation of instant-ngp (sdf and nerf), with a GUI.
MIT License
2.1k stars 273 forks source link

gridencoder compilation error #138

Open lincior opened 1 year ago

lincior commented 1 year ago

On commit 35a8ae54063e794b40a9f0e33df2b823856ffdf6 (current HEAD) I opened the workspace inside the Docker container nvcr.io/nvidia/pytorch:21.09-py3, installed the pip requirements and tried to compile gridencoder, but there is an error at line 327 of gridencoder/src/gridencoder.cu:

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(327): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (__half2 *, __half2)

Full logs here:

(base) root@ecfb9b3adcf2:/workspaces/torch-ngp/gridencoder# python setup.py build_ext --inplace
running build_ext
building '_gridencoder' extension
Emitting ninja build file /workspaces/torch-ngp/gridencoder/build/temp.linux-x86_64-3.8/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/2] c++ -MMD -MF /workspaces/torch-ngp/gridencoder/build/temp.linux-x86_64-3.8/workspaces/torch-ngp/gridencoder/src/bindings.o.d -pthread -B /opt/conda/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/opt/conda/lib/python3.8/site-packages/torch/include -I/opt/conda/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/opt/conda/lib/python3.8/site-packages/torch/include/TH -I/opt/conda/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/opt/conda/include/python3.8 -c -c /workspaces/torch-ngp/gridencoder/src/bindings.cpp -o /workspaces/torch-ngp/gridencoder/build/temp.linux-x86_64-3.8/workspaces/torch-ngp/gridencoder/src/bindings.o -O3 -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1013"' -DTORCH_EXTENSION_NAME=_gridencoder -D_GLIBCXX_USE_CXX11_ABI=1
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
[2/2] /usr/local/cuda/bin/nvcc  -I/opt/conda/lib/python3.8/site-packages/torch/include -I/opt/conda/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/opt/conda/lib/python3.8/site-packages/torch/include/TH -I/opt/conda/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/opt/conda/include/python3.8 -c -c /workspaces/torch-ngp/gridencoder/src/gridencoder.cu -o /workspaces/torch-ngp/gridencoder/build/temp.linux-x86_64-3.8/workspaces/torch-ngp/gridencoder/src/gridencoder.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -std=c++14 -U__CUDA_NO_HALF_OPERATORS__ -U__CUDA_NO_HALF_CONVERSIONS__ -U__CUDA_NO_HALF2_OPERATORS__ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1013"' -DTORCH_EXTENSION_NAME=_gridencoder -D_GLIBCXX_USE_CXX11_ABI=1 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_61,code=sm_61 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86
FAILED: /workspaces/torch-ngp/gridencoder/build/temp.linux-x86_64-3.8/workspaces/torch-ngp/gridencoder/src/gridencoder.o 
/usr/local/cuda/bin/nvcc  -I/opt/conda/lib/python3.8/site-packages/torch/include -I/opt/conda/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/opt/conda/lib/python3.8/site-packages/torch/include/TH -I/opt/conda/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda/include -I/opt/conda/include/python3.8 -c -c /workspaces/torch-ngp/gridencoder/src/gridencoder.cu -o /workspaces/torch-ngp/gridencoder/build/temp.linux-x86_64-3.8/workspaces/torch-ngp/gridencoder/src/gridencoder.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -std=c++14 -U__CUDA_NO_HALF_OPERATORS__ -U__CUDA_NO_HALF_CONVERSIONS__ -U__CUDA_NO_HALF2_OPERATORS__ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1013"' -DTORCH_EXTENSION_NAME=_gridencoder -D_GLIBCXX_USE_CXX11_ABI=1 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_61,code=sm_61 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=sm_80 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86
/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(26): warning: missing return statement at end of non-void function "atomicAdd(c10::Half *, c10::Half)"

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(26): warning: missing return statement at end of non-void function "atomicAdd(c10::Half *, c10::Half)"

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(327): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (__half2 *, __half2)
          detected during:
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U]" 
(435): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U, C=1U, N_C=1U]" 
(406): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U]" 
(435): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U, C=2U, N_C=2U]" 
(410): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U]" 
(435): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U, C=4U, N_C=2U]" 
(414): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U]" 
(435): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U, C=8U, N_C=2U]" 
(418): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=2U]" 
(435): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U, C=1U, N_C=1U]" 
(406): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U]" 
(436): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U, C=2U, N_C=2U]" 
(410): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U]" 
(436): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U, C=4U, N_C=2U]" 
(414): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U]" 
(436): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U, C=8U, N_C=2U]" 
(418): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=3U]" 
(436): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U, C=1U, N_C=1U]" 
(406): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U]" 
(437): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U, C=2U, N_C=2U]" 
(410): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U]" 
(437): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U, C=4U, N_C=2U]" 
(414): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U]" 
(437): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U, C=8U, N_C=2U]" 
(418): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=4U]" 
(437): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U, C=1U, N_C=1U]" 
(406): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U]" 
(438): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U, C=2U, N_C=2U]" 
(410): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U]" 
(438): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U, C=4U, N_C=2U]" 
(414): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U]" 
(438): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(333): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grid_backward<scalar_t,D,C,N_C>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U, C=8U, N_C=2U]" 
(418): here
            instantiation of "void kernel_grid_backward_wrapper<scalar_t,D>(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double, D=5U]" 
(438): here
            instantiation of "void grid_encode_backward_cuda(const scalar_t *, const float *, const scalar_t *, const int *, scalar_t *, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, scalar_t *, scalar_t *, uint32_t, __nv_bool, uint32_t) [with scalar_t=double]" 
(495): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U, C=1U]" 
(615): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U]" 
(627): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U, C=2U]" 
(616): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U]" 
(627): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U, C=4U]" 
(617): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U]" 
(627): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U, C=8U]" 
(618): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=2U]" 
(627): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U, C=1U]" 
(615): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U]" 
(628): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U, C=2U]" 
(616): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U]" 
(628): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U, C=4U]" 
(617): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U]" 
(628): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U, C=8U]" 
(618): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=3U]" 
(628): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U, C=1U]" 
(615): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U]" 
(629): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U, C=2U]" 
(616): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U]" 
(629): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U, C=4U]" 
(617): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U]" 
(629): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U, C=8U]" 
(618): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=4U]" 
(629): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U, C=1U]" 
(615): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U]" 
(630): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U, C=2U]" 
(616): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U]" 
(630): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U, C=4U]" 
(617): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U]" 
(630): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

/workspaces/torch-ngp/gridencoder/src/gridencoder.cu(604): error: no instance of overloaded function "atomicAdd" matches the argument list
            argument types are: (double *, double)
          detected during:
            instantiation of "void kernel_grad_tv<scalar_t,D,C>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U, C=8U]" 
(618): here
            instantiation of "void kernel_grad_tv_wrapper<scalar_t,D>(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double, D=5U]" 
(630): here
            instantiation of "void grad_total_variation_cuda(const scalar_t *, const scalar_t *, scalar_t *, const int *, float, uint32_t, uint32_t, uint32_t, uint32_t, float, uint32_t, uint32_t, __nv_bool) [with scalar_t=double]" 
(638): here

33 errors detected in the compilation of "/workspaces/torch-ngp/gridencoder/src/gridencoder.cu".
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1715, in _run_ninja_build
    subprocess.run(
  File "/opt/conda/lib/python3.8/subprocess.py", line 516, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "setup.py", line 32, in <module>
    setup(
  File "/opt/conda/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/opt/conda/lib/python3.8/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/opt/conda/lib/python3.8/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/opt/conda/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/opt/conda/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 79, in run
    _build_ext.run(self)
  File "/opt/conda/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
    _build_ext.build_ext.run(self)
  File "/opt/conda/lib/python3.8/distutils/command/build_ext.py", line 340, in run
    self.build_extensions()
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 733, in build_extensions
    build_ext.build_extensions(self)
  File "/opt/conda/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
    _build_ext.build_ext.build_extensions(self)
  File "/opt/conda/lib/python3.8/distutils/command/build_ext.py", line 449, in build_extensions
    self._build_extensions_serial()
  File "/opt/conda/lib/python3.8/distutils/command/build_ext.py", line 474, in _build_extensions_serial
    self.build_extension(ext)
  File "/opt/conda/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 202, in build_extension
    _build_ext.build_extension(self, ext)
  File "/opt/conda/lib/python3.8/distutils/command/build_ext.py", line 528, in build_extension
    objects = self.compiler.compile(sources,
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 554, in unix_wrap_ninja_compile
    _write_ninja_file_and_compile_objects(
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1397, in _write_ninja_file_and_compile_objects
    _run_ninja_build(
  File "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1731, in _run_ninja_build
    raise RuntimeError(message) from e
RuntimeError: Error compiling objects for extension
amerssun commented 1 year ago

same error...

haonanhe commented 1 year ago

@amerssun @RiccardoLincetto same... Have you guys solved it?

amerssun commented 1 year ago

@amerssun @RiccardoLincetto same... Have you guys solved it? you can modify "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1715 ['ninja', '-v'] to ['ninja', '--version'] and manually compile build.ninja

haonanhe commented 1 year ago

@amerssun @RiccardoLincetto same... Have you guys solved it? you can modify "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1715 ['ninja', '-v'] to ['ninja', '--version'] and manually compile build.ninja

Thanks, but what do you mean by 'manually compile build.ninja'? I think I need to have more hints or explicit instructions.

amerssun commented 1 year ago

@amerssun @RiccardoLincetto same... Have you guys solved it? you can modify "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1715 ['ninja', '-v'] to ['ninja', '--version'] and manually compile build.ninja

Thanks, but what do you mean by 'manually compile build.ninja'? I think I need to have more hints or explicit instructions. 我发中文哈,这个错误的原因本质是pytorch以及cuda本机的驱动版本不一致导致的,但由于某些原因我无法修改本机的cuda版本,所以有一个比较ugly的解决方案。 首先修改cpp_extension.py,再进行重新安装后,应该还是会报错。报错大意是找不到类似/home/user/.cache/torch_extensions/bias_act_plugin/bias_act_plugin.so这种so文件。然后你可以去这个文件夹下面,(如/home/user/.cache/torch_extensions/bias_act_plugin)就可以看到build.ninja。如果顺利的话你可以直接输入ninja进行编译,会生成对应的so文件。如果ninja编译报错,大概是因为驱动不支持sm_86的架构,你可以直接把build.ninja里的-gencode=arch=compute_86,code=sm_86 这一句删掉或者降级成-gencode=arch=compute_80,code=sm_80重新编译生成so文件 生成完so文件就回到之前的目录 python setup.py install就行了

haonanhe commented 1 year ago

@amerssun @RiccardoLincetto same... Have you guys solved it? you can modify "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1715 ['ninja', '-v'] to ['ninja', '--version'] and manually compile build.ninja

Thanks, but what do you mean by 'manually compile build.ninja'? I think I need to have more hints or explicit instructions. 我发中文哈,这个错误的原因本质是pytorch以及cuda本机的驱动版本不一致导致的,但由于某些原因我无法修改本机的cuda版本,所以有一个比较ugly的解决方案。 首先修改cpp_extension.py,再进行重新安装后,应该还是会报错。报错大意是找不到类似/home/user/.cache/torch_extensions/bias_act_plugin/bias_act_plugin.so这种so文件。然后你可以去这个文件夹下面,(如/home/user/.cache/torch_extensions/bias_act_plugin)就可以看到build.ninja。如果顺利的话你可以直接输入ninja进行编译,会生成对应的so文件。如果ninja编译报错,大概是因为驱动不支持sm_86的架构,你可以直接把build.ninja里的-gencode=arch=compute_86,code=sm_86 这一句删掉或者降级成-gencode=arch=compute_80,code=sm_80重新编译生成so文件 生成完so文件就回到之前的目录 python setup.py install就行了

OMG! 按照你的方法我成功了!太谢谢你了🙏。 虽然出现的问题和你的描述不全相同,但是问题确实在于build.ninja里面关于gpu架构的描述,我把gencode-arch=compute_52更改之后就可以了。谢谢!

baiyuting commented 1 year ago

@amerssun @RiccardoLincetto same... Have you guys solved it? you can modify "/opt/conda/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1715 ['ninja', '-v'] to ['ninja', '--version'] and manually compile build.ninja

Thanks, but what do you mean by 'manually compile build.ninja'? I think I need to have more hints or explicit instructions. 我发中文哈,这个错误的原因本质是pytorch以及cuda本机的驱动版本不一致导致的,但由于某些原因我无法修改本机的cuda版本,所以有一个比较ugly的解决方案。 首先修改cpp_extension.py,再进行重新安装后,应该还是会报错。报错大意是找不到类似/home/user/.cache/torch_extensions/bias_act_plugin/bias_act_plugin.so这种so文件。然后你可以去这个文件夹下面,(如/home/user/.cache/torch_extensions/bias_act_plugin)就可以看到build.ninja。如果顺利的话你可以直接输入ninja进行编译,会生成对应的so文件。如果ninja编译报错,大概是因为驱动不支持sm_86的架构,你可以直接把build.ninja里的-gencode=arch=compute_86,code=sm_86 这一句删掉或者降级成-gencode=arch=compute_80,code=sm_80重新编译生成so文件 生成完so文件就回到之前的目录 python setup.py install就行了

OMG! 按照你的方法我成功了!太谢谢你了🙏。 虽然出现的问题和你的描述不全相同,但是问题确实在于build.ninja里面关于gpu架构的描述,我把gencode-arch=compute_52更改之后就可以了。谢谢!

+1 我这边处理过程 环境 ubuntu20.04 V100 将尾部 gencode=arch=compute_86 和首部 gencode-arch=compute_52 都删除后,执行 ninja,报了很多 warning,但是得到了 so 文件,重新执行通过