instant-ngp项目实装

1. 安装 下载项目 git clone --recursive https://github.com/nvlabs/instant-ngp cd instant-ngp 安装环境 pip install -r requirements.txt cmake -S . -B build 问题1 CMake Error: The source directory "/home/xxx/graphics_primitives/instant-ngp/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. # 老版本cmake会读取build下的配置文件, 新版本不用, 所以升级cmake版本 或 CMake Error at CMakeLists.txt:9 (cmake_minimum_required): CMake 3.19 or higher is required. You are running version 3.10.2 -- Configuring incomplete, errors occurred! 解决: 升级CMake 非root安装cmake wget https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz tar zxvf cmake-3.23.0.tar.gz && cd cmake-3.23.0 ~~./bootstrap~~ ./bootstrap -- -DCMAKE_USE_OPENSSL=OFF # 非root下可以选择关闭openssl防止报错 ./configure --prefix=/.../cmake # 设置在自己目录下 make make install vim ~/.bashrc export PATH=/home/xxx/cmake/bin:$PATH source ~/.bashrc 问题: ./bootstrap时报错 CMake Error at Utilities/cmcurl/CMakeLists.txt:586 (message): Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL. 解决: 没有开发版OpenSSL, 不使用openssl # apt-get install libssl-dev # 非root ./bootstrap -- -DCMAKE_USE_OPENSSL=OFF 问题: ./configure –prefix=/…/cmake 地址写错或没有权限 -- No release type specified. Setting to 'Release'. CMake Error at CMakeLists.txt:38 (message): Some instant-ngp dependencies are missing. If you forgot the "--recursive" flag when cloning this project, this can be fixed by calling "git submodule update --init --recursive". CMAKE_CUDA_ARCHITECTURES must be valid if set. 解决: 删除build文件夹 cmake --build build --config RelWithDebInfo -j 16 问题1: nvcc fatal : Unsupported gpu architecture ‘compute_80+PTX’ [ 1%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/cpp_api.cu.o [ 3%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/cutlass_mlp.cu.o [ 5%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/loss.cu.o [ 7%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/common.cu.o [ 10%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/encoding.cu.o [ 10%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/common_device.cu.o [ 12%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/network.cu.o [ 14%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/optimizer.cu.o [ 18%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/object.cu.o [ 18%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/reduce_sum.cu.o [ 20%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/fully_fused_mlp.cu.o nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:103: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/cpp_api.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/cpp_api.cu.o] Error 1 make[2]: *** Waiting for unfinished jobs.... nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:145: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/loss.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/loss.cu.o] Error 1 nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:75: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/common.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/common.cu.o] Error 1 dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:117: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/cutlass_mlp.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/cutlass_mlp.cu.o] Error 1 nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:89: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/common_device.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/common_device.cu.o] Error 1 nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:159: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/network.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/network.cu.o] Error 1 nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:131: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/encoding.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/encoding.cu.o] Error 1 dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:187: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/optimizer.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/optimizer.cu.o] Error 1 nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' nvcc fatal : Unsupported gpu architecture 'compute_80+PTX' dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:173: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/object.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/object.cu.o] Error 1 dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:215: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/fully_fused_mlp.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/fully_fused_mlp.cu.o] Error 1 dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:201: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/reduce_sum.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/reduce_sum.cu.o] Error 1 CMakeFiles/Makefile2:305: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/all' failed make[1]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 49%] Built target glfw_objects Makefile:90: recipe for target 'all' failed make: *** [all] Error 2 解决: 在instant-ngp/CMakeLists.txt顶部添加: 后面的数字是显卡的算力, 以nccl中设定的算力为准 set( ENV{TCNN_CUDA_ARCHITECTURES} 75 ) 问题2: make[1]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/all] Error 2 Consolidate compiler generated dependencies of target tiny-cuda-nn [ 29%] Built target glfw_objects [ 30%] Building CUDA object dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/optimizer.cu.o /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/optimizers/shampoo.h(753): error: identifier "cublasSetWorkspace" is undefined detected during: instantiation of "tcnn::ShampooOptimizer<T>::ShampooOptimizer(const tcnn::json &) [with T=float]" /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/src/optimizer.cu(71): here instantiation of "tcnn::Optimizer<T> *tcnn::create_optimizer<T>(const tcnn::json &) [with T=float]" /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/optimizers/average.h(65): here /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/optimizers/shampoo.h(771): error: identifier "cublasSetWorkspace" is undefined detected during: instantiation of "tcnn::ShampooOptimizer<T>::ShampooOptimizer(const tcnn::json &) [with T=float]" /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/src/optimizer.cu(71): here instantiation of "tcnn::Optimizer<T> *tcnn::create_optimizer<T>(const tcnn::json &) [with T=float]" /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/optimizers/average.h(65): here /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/optimizers/shampoo.h(794): error: identifier "cublasSetWorkspace" is undefined detected during: instantiation of "tcnn::ShampooOptimizer<T>::ShampooOptimizer(const tcnn::json &) [with T=float]" /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/src/optimizer.cu(71): here instantiation of "tcnn::Optimizer<T> *tcnn::create_optimizer<T>(const tcnn::json &) [with T=float]" /home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/include/tiny-cuda-nn/optimizers/average.h(65): here 3 errors detected in the compilation of "/home/xxx/graphics_primitives/instant-ngp/dependencies/tiny-cuda-nn/src/optimizer.cu". dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/build.make:187: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/optimizer.cu.o' failed make[2]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/optimizer.cu.o] Error 1 CMakeFiles/Makefile2:305: recipe for target 'dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/all' failed make[1]: *** [dependencies/tiny-cuda-nn/src/CMakeFiles/tiny-cuda-nn.dir/all] Error 2 Makefile:90: recipe for target 'all' failed make: *** [all] Error 2 原因: nccl对应cuda版本是11.0, 不是11.4. 解决: 重装cuda或nccl cmake查错: 后面加-v, 能显示报错的行. 只需要python虚拟环境的服务器中的配置 pip install -r requirements.txt export TCNN_CUDA_ARCHITECTURES=86 下载并安装 OptiX,并设置 OptiX_INSTALL_DIR 环境变量 [https://developer.download.nvidia.cn/designworks/optix/secure/7.4.0/NVIDIA-OptiX-SDK-7.4.0-linux64-x86_64.sh?Y1wWl64XXNqxb7ETeQnMC1FDmN-fg1gq7yFZP75uvqo80VkyJjPEU3cEJtIRP3v6wmsgw55EbgwyzswJ4A0GXWe5B-UAyQ5Xb5u7L5Sn7Ty8RTcxARIb_EABVVHU-MCH_g75f9_YxdflsT30csKrIWTrIdMjRbKKwOb4lXPIGyZcCQo_3zg&t=eyJscyI6ImdzZW8iLCJsc2QiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5jb21cLyJ91](https://developer.download.nvidia.cn/designworks/optix/secure/7.4.0/NVIDIA-OptiX-SDK-7.4.0-linux64-x86_64.sh?Y1wWl64XXNqxb7ETeQnMC1FDmN-fg1gq7yFZP75uvqo80VkyJjPEU3cEJtIRP3v6wmsgw55EbgwyzswJ4A0GXWe5B-UAyQ5Xb5u7L5Sn7Ty8RTcxARIb_EABVVHU-MCH_g75f9_YxdflsT30csKrIWTrIdMjRbKKwOb4lXPIGyZcCQo_3zg&t=eyJscyI6ImdzZW8iLCJsc2QiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5jb21cLyJ91112#) 需要将 CUDA 升级至 11.4,可以多版本 CUDA 并存,但是将环境变量链接至 export OptiX_INSTALL_DIR=/home/xxx/Install/NVIDIA-OptiX-SDK-7.4.0-linux64-x86_64 ...

2022年6月13日 · 3 分钟 · sun510001

NeRF原理介绍

NeRF入门介绍视频 NeRF系列公开课01 | 基于NeRF的三维内容生成_哔哩哔哩_bilibili NeRF简介_哔哩哔哩_bilibili 1. NeRF相比于三维重建的区别 一些场景的内容特别复杂, 使用三维重建效果较差, 但是NeRF渲染三维场景可以达到类似于相机拍摄的效果 没有像传统常见方式一样使用hard shape的表征方式, 而是使用soft shape. hard shape需要object segmentation mask(抠图, 把物体的背景都去掉) hard shape有boundary discontinuity(边界不连续)的问题需要解决 只使用相机和物体表面之间的ray上的很多samples做计算, 性能消耗少很多 NeRF缺点是, 目前没有很好的工具去编辑物体的颜色形状等 2. NeRF的工作原理 ...

2022年6月13日 · 9 分钟 · sun510001