19reborn / NeuS2

[ICCV 2023] Official code for NeuS2
Other
613 stars 40 forks source link

cmake --build build --config RelWithDebInfo -j 16出错 #77

Open rib12316 opened 1 month ago

rib12316 commented 1 month ago

你好,我按照你的安装教程进行安装,在编译这里出现了两个奇怪的错误,一直无法解决,想请问一下有什么解决办法吗?
我的python版本3.9,系统是windows,cuda是11.6版本,visual studio是2019版,我是按照intstant-ngp的安装步骤来的,可以成功运行,但是对于NeuS2却卡在了编译这一步

错误一、 9 errors detected in the compilation of "E:/NeuS2/NeuS2/src/triangle_bvh.cu".

E:\NeuS2\NeuS2\src\optix/program.h(75): error : identifier "optixModuleCreateFromPTX" is undefined [E:\NeuS2\NeuS2\buil d\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: Raystab]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDeviceCon text &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(635): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(144): error : class "OptixPipelineLinkOptions" has no member "debugLevel" [E:\NeuS2\ NeuS2\build\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: Raystab]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDeviceCon text &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(635): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(159): error : too few arguments in function call [E:\NeuS2\NeuS2\build\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: Raystab]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDeviceCon text &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(635): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(75): error : identifier "optixModuleCreateFromPTX" is undefined [E:\NeuS2\NeuS2\buil d\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: Raytrace]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDeviceCo ntext &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(636): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(144): error : class "OptixPipelineLinkOptions" has no member "debugLevel" [E:\NeuS2\ NeuS2\build\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: Raytrace]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDeviceCo ntext &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(636): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(159): error : too few arguments in function call [E:\NeuS2\NeuS2\build\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: Raytrace]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDeviceCo ntext &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(636): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(75): error : identifier "optixModuleCreateFromPTX" is undefined [E:\NeuS2\NeuS2\buil d\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: PathEscape]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDevice Context &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(637): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(144): error : class "OptixPipelineLinkOptions" has no member "debugLevel" [E:\NeuS2\ NeuS2\build\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: PathEscape]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDevice Context &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(637): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\optix/program.h(159): error : too few arguments in function call [E:\NeuS2\NeuS2\build\ngp.vcxproj] detected during: instantiation of "ngp::optix::Program::Program(const char *, size_t, OptixDeviceContext) [with T=ngp:: PathEscape]" C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\memory(3382): here instantiation of "std::unique_ptr<_Ty, std::default_delete<_Ty>> std::make_unique<_Ty,_Types...,

(_Types &&...) [with _Ty=ngp::optix::Program, _Types=<const char *, unsigned long long, OptixDevice Context &>, =0]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(637): here instantiation of "void ngp::TriangleBvhWithBranchingFactor::build_optix(const tcnn::GPU Memory &, cudaStream_t) [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(647): here instantiation of "ngp::TriangleBvhWithBranchingFactor::TriangleBvhWithBranchingFactor() [with BRANCHING_FACTOR=4U]" E:\NeuS2\NeuS2\src\triangle_bvh.cu(664): here

E:\NeuS2\NeuS2\src\triangle_bvh.cu(49): warning #177-D: variable "ngp::MAX_DIST_SQ" was declared but never referenced [ E:\NeuS2\NeuS2\build\ngp.vcxproj]

错误二、C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.6.t

argets(790,9): error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc.exe" -gencode=arch= compute_75,code=\"compute_75,compute_75\" -gencode=arch=compute_75,code=\"sm_75,compute_75\" --use-local-env -ccbin "C: \Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64" -x cu -rdc=true -IE:\NeuS2\NeuS2\dependencies\neus2_tcnn\include -IE:\NeuS2\NeuS2\dependencies\neus2_tcnn\dependencies -IE:\NeuS2\NeuS 2\dependencies\glfw\include -IE:\NeuS2\NeuS2\dependencies\imgui -IE:\NeuS2\NeuS2\dependencies\gl3w -IE:\NeuS2\NeuS2\dep endencies -IE:\NeuS2\NeuS2\dependencies\eigen -IE:\NeuS2\NeuS2\dependencies\filesystem -IE:\NeuS2\NeuS2\dependencies\na novdb -IE:\Optix\include -IE:\NeuS2\NeuS2\dependencies\tinylogger -IE:\NeuS2\NeuS2\include -IE:\NeuS2\NeuS2\build -I"C: \Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include" --keep-dir x64\RelWithDebInfo -maxrregcount=0 --m achine 64 --compile -cudart static --extended-lambda --expt-relaxed-constexpr -std=c++14 -Xcompiler="/EHsc -Zi -Ob1 -bi gobj" -D_WINDOWS -DNDEBUG -DNGP_GUI -DNGP_OPTIX -D"NGP_VERSION=\"1.0dev\"" -DTCNN_MIN_GPU_ARCH=75 -DTCNN_SHAMPOO -D"C MAKE_INTDIR=\"RelWithDebInfo\"" -DWIN32 -D_WINDOWS -D_CRT_SECURE_NO_WARNINGS -DNDEBUG -DNGP_GUI -DNGP_OPTIX -D"NGP_VERS ION=\"1.0dev\"" -DTCNN_MIN_GPU_ARCH=75 -DTCNN_SHAMPOO -D"CMAKE_INTDIR=\"RelWithDebInfo\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /O2 /FdE:\NeuS2\NeuS2\build\RelWithDebInfo\ngp.pdb /FS /Zi /MD /GR" -o ngp.dir\RelWithDebInfo\triangle_bvh.ob j "E:\NeuS2\NeuS2\src\triangle_bvh.cu"”已退出,返回代码为 1。 [E:\NeuS2\NeuS2\build\ngp.vcxproj]

rib12316 commented 1 month ago

I've managed to fix it, the reason for the error could be that the Optix libraries are incompatible with the latest version, in my case, reinstalling Optix 7.6.0 compiles it successfully!