DiffDVR环境配置及编译

论文链接:
https://arxiv.org/abs/2107.12672v1https://arxiv.org/abs/2107.12672v1

github链接: 

GitHub - shamanDevel/DiffDVR: Differentiable Direct Volume Rendering - Source CodeDifferentiable Direct Volume Rendering - Source Code - GitHub - shamanDevel/DiffDVR: Differentiable Direct Volume Rendering - Source Codehttps://github.com/shamanDevel/DiffDVR

目录

1、conda环境

2、安装cuda11.0+cudnn8.1.1

3、安装glfw3.3.7, glew2.1.0, glm

4、安装gcc9.1.0

5、编译DiffDVR

5.1 cmake

5.2 make

1、localtime_r

 2、O_PATH

3、exception

4、assert(densityAxisOpacity.size() == opacityAxis.size());

 5、undefined reference to symbol ...

6、一堆c10的问题

7、终极大boss

8、备选方案:无GUI

5.3 编译成功!

写在最后


1、conda环境

这个没什么好说的,直接用目录下的environment.yml运行就好。

conda env create -f environment.yml

2、安装cuda11.0+cudnn8.1.1

参考博客:无root Linux安装CUDA 10.2 及 cudnn

cuda下载:https://developer.nvidia.com/cuda-toolkit-archive

cudnn下载:https://developer.nvidia.com/rdp/cudnn-archive

wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
chmod +x cuda_11.0.3_450.51.06_linux.run
sh cuda_11.0.3_450.51.06_linux.run
vim ~/.bashrc
source ~/.bashrc
nvcc --version
tar -zxvf cudnn-11.2-linux-x64-v8.1.1.33.tgz
cp cuda/include/cudnn* /home/qianyi/local/cuda-11.0/include/
cp cuda/lib64/libcudnn* /home/qianyi/local/cuda-11.0/lib64/
chmod a+r /home/qianyi/local/cuda-11.0/include/cudnn* /home/qianyi/local/cuda-11.0/lib64/libcudnn*

 博客说的挺详细的,跟着做应该没问题。

3、安装glfw3.3.7, glew2.1.0, glm

参考博客:ubuntu16.04安装glfw,glad,glm,assimp

                  在ubuntu中安装glew

这三个安装方法和过程都差不多。建议记好安装路径,后面会用到。

4、安装gcc9.1.0

参考博客:Linux下非root安装GCC9.1.0

这是因为第三方依赖库magic enum要求gcc >= 9,只好安装咯。这个也不难,注意配好环境变量就好了。

5、编译DiffDVR

欢迎来到最难的一步!

git的时候加上--recurse-submodules,不然有些在third-party里的第三方库直接git会git不到。

git clone --recurse-submodules https://github.com/shamanDevel/DiffDVR.git

常规操作:

mkdir build
cd build

5.1 cmake

在DiffDVR/CMakeLists.txt中加上:

set(CMAKE_C_COMPILER "/home/qianyi/local/gcc-9.1.0/bin/gcc")
set(CMAKE_C_COMPILER_AR "/home/qianyi/local/gcc-9.1.0/bin/gcc-ar")
set(CMAKE_C_COMPILER_RANLIB "/home/qianyi/local/gcc-9.1.0/bin/gcc-ranlib")
set(CMAKE_CXX_COMPILER "/home/qianyi/local/gcc-9.1.0/bin/g++")
set(CMAKE_CXX_COMPILER_AR "/home/qianyi/local/gcc-9.1.0/bin/gcc-ar")
set(CMAKE_CXX_COMPILER_RANLIB "/home/qianyi/local/gcc-9.1.0/bin/gcc-ranlib")
set(TORCH_PATH "/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch")
set(TORCH_INCLUDE_DIR "/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include")
set(TORCH_LIBRARIES "/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/libtorch/lib")
set(Torch_DIR "/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/share/cmake/Torch")
set(PYTHON_LIBRARY "/home/qianyi/anaconda3/envs/py38torch18/lib/libpython3.8.so")
set(PYTHON_EXECUTABLE "/home/qianyi/anaconda3/envs/py38torch18/bin/python")
set(PYTHON_INCLUDE_DIR "/home/qianyi/anaconda3/envs/py38torch18/include/python3.8")
set(GLM_INCLUDE_DIR "/home/qianyi/local/include/glm")
set(GLEW_INCLUDE_DIR "/home/qianyi/local/include")
set(GLEW_SHARED_LIBRARY_RELEASE "/home/qianyi/local/lib64/libGLEW.so.2.1.0")
set(GLFW_INCLUDE_DIR "/home/qianyi/local/include")
set(GLFW_LIBRARY "/home/qianyi/local/lib/libglfw3.a")
link_libraries("/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda_cpp.so")
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)

这里面的路径都换成自己的。然后: 

cmake ..

下面这样也可以,但是会卡在5.2中的问题7,貌似用上面的方法就可以编译成功。原因不太清楚。

cmake .. -DTORCH_PATH=/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch -DTorch_DIR=/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/share/cmake/Torch -DPYTHON_LIBRARY=/home/qianyi/anaconda3/envs/py38torch18/lib/libpython3.8.so -DPYTHON_EXECUTABLE=/home/qianyi/anaconda3/envs/py38torch18/bin/python -DGLFW_INCLUDE_DIR=/home/qianyi/local/include -DGLFW_LIBRARY=/home/qianyi/local/lib/libglfw3.a -GLEW_INCLUDE_DIR=/home/qianyi/local/include -GLM_INCLUDE_DIR=/home/qianyi/local/include/glm 

make过程中不少错误都可以通过在cmake时指定路径得到解决。

完整输出:

(py38torch18) qianyi@titanxp-x4-193-162:~/DiffDVR/build$ cmake ..
-- final cuda flags: -arch=compute_61 -code=sm_61;-std=c++17;--use_fast_math;--generate-line-info;--expt-relaxed-constexpr;--extended-lambda;–Xptxas;-v
-- Torch found at /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch
-- Caffe2: CUDA detected: 11.0
-- Caffe2: CUDA nvcc is: /home/qianyi/local/cuda-11.0/bin/nvcc
-- Caffe2: CUDA toolkit directory: /home/qianyi/local/cuda-11.0
-- Caffe2: Header version is: 11.0
-- Found cuDNN: v8.1.1  (include: /home/qianyi/local/cuda-11.0/include, library: /home/qianyi/local/cuda-11.0/lib64/libcudnn.so)
-- /home/qianyi/local/cuda-11.0/lib64/libnvrtc.so shorthash is bdda0eb4
-- Autodetected CUDA architecture(s):  6.1 6.1 6.1 6.1
-- Added CUDA NVCC flags for: -gencode;arch=compute_61,code=sm_61
-- Torch: full library list: /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libc10.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libc10_cuda.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cpu.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_python.so
-- Torch: shared libraries to copy: /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libc10.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libc10_cuda.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libcaffe2_detectron_ops_gpu.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libcaffe2_module_test_dynamic.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libcaffe2_nvrtc.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libcaffe2_observers.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libshm.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cpu.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda_cpp.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda_cu.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_global_deps.so;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_python.so
-- Torch: include directories: /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include;/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include
-- GLM_INCLUDE_DIR = /home/qianyi/local/include/glm
-- Building with the GUI, searching for OpenGL
-- renderer kernel directories: {"/home/qianyi/DiffDVR/renderer","/home/qianyi/DiffDVR/third-party/cudad/include/cudAD",}
-- renderer kernel files: /home/qianyi/DiffDVR/renderer/cooperative_groups.cuh;/home/qianyi/DiffDVR/renderer/helper_math.cuh;/home/qianyi/DiffDVR/renderer/renderer_adjoint.cuh;/home/qianyi/DiffDVR/renderer/renderer_blending.cuh;/home/qianyi/DiffDVR/renderer/renderer_camera.cuh;/home/qianyi/DiffDVR/renderer/renderer_commons.cuh;/home/qianyi/DiffDVR/renderer/renderer_compareToImage.cuh;/home/qianyi/DiffDVR/renderer/renderer_interpolation.cuh;/home/qianyi/DiffDVR/renderer/renderer_kernels.cuh;/home/qianyi/DiffDVR/renderer/renderer_settings.cuh;/home/qianyi/DiffDVR/renderer/renderer_tensor.cuh;/home/qianyi/DiffDVR/renderer/renderer_tf.cuh;/home/qianyi/DiffDVR/renderer/renderer_utils.cuh;/home/qianyi/DiffDVR/third-party/cudad/include/cudAD/cmath_cuda.cuh;/home/qianyi/DiffDVR/third-party/cudad/include/cudAD/forward.h;/home/qianyi/DiffDVR/third-party/cudad/include/cudAD/forward_vector.h;/home/qianyi/DiffDVR/third-party/cudad/include/cudAD/macros.h;/home/qianyi/DiffDVR/third-party/cudad/include/cudAD/optimization.h
-- pybind11 v2.6.3 dev1
-- Configuring done
CMake Warning at gui/CMakeLists.txt:48 (add_executable):
  Cannot generate a safe runtime search path for target Gui because files in
  some directories may conflict with libraries in implicit directories:

    runtime library [libgomp.so.1] in /home/qianyi/local/lib64 may be hidden by files in:
      /home/qianyi/anaconda3/envs/py38torch18/lib

  Some of these libraries may not be found correctly.


CMake Warning at third-party/pybind11/tools/pybind11Tools.cmake:166 (add_library):
  Cannot generate a safe runtime search path for target pyrenderer because
  files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libgomp.so.1] in /home/qianyi/local/lib64 may be hidden by files in:
      /home/qianyi/anaconda3/envs/py38torch18/lib

  Some of these libraries may not be found correctly.
Call Stack (most recent call first):
  bindings/CMakeLists.txt:10 (pybind11_add_module)


CMake Warning at unittests/CMakeLists.txt:30 (add_executable):
  Cannot generate a safe runtime search path for target Test because files in
  some directories may conflict with libraries in implicit directories:

    runtime library [libgomp.so.1] in /home/qianyi/local/lib64 may be hidden by files in:
      /home/qianyi/anaconda3/envs/py38torch18/lib

  Some of these libraries may not be found correctly.


-- Generating done
-- Build files have been written to: /home/qianyi/DiffDVR/build

5.2 make

make的过程中会遇到一些问题:

 不少程序作者是在windows上运行的,所以会有部分函数有差异。更换即可。例如:

1、localtime_r

localtime_s(&tstruct, &now);

改成: 

localtime_r(&now, &tstruct);

 2、O_PATH

char path[MAX_PATH];
int intValue = 0;
memset(path, 0, sizeof(char)*MAX_PATH);

改成:

char path[O_PATH];
int intValue = 0;
memset(path, 0, sizeof(char)*O_PATH);

3、exception

​​​

throw std::exception(msg.c_str());

 改成:

std::logic_error msgg(msg.c_str());
throw std::exception(msgg);

4、assert(densityAxisOpacity.size() == opacityAxis.size());

 这个应该是漏定义了。根据前面同样名称的定义可以在此处补上:

std::vector<float> densityAxisOpacity = json["densityAxisOpacity"];
std::vector<float> opacityAxis = json["opacityAxis"];

 5、undefined reference to symbol ...

 这两个问题类似,解决办法是

在DiffDVR/CMakeLists.txt中加上

link_libraries("/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda_cpp.so")

在DiffDVR/gui/CMakeLists.txt的target_link_libraries中加上

-lX11
"/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/lib/libtorch_cuda_cpp.so"

6、一堆c10的问题

参考:_GLIBCXX_USE_CXX11_ABI宏的作用,解决方法是在DiffDVR/CMakeLists.txt中加上:

add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)

7、终极大boss

这个最终我也不知道是怎么解决的,突然就编译通过了~

貌似就是cmake .. -DXX=XX不行,但是set(XX XX)可以。

8、备选方案:无GUI

如果编译过程中第七个问题一直无法解决或者GUI一直报错的话,可以尝试先不用GUI。

compile-library-server.sh

echo CMake
mkdir build
cd build
cmake -DRENDERER_ONLY_RESOURCES=ON -DRENDERER_USE_DOUBLE_PRECISION=OFF ..
make VERBOSE=true
cd ..

echo Setup-Tools build
python setup.py build
cp build/lib.linux-x86_64-3.8/pyrenderer.cpython-38-x86_64-linux-gnu.so bin/

echo Test
cd bin
python -c "import torch; print(torch.__version__); import pyrenderer;"

setup.py

from setuptools import setup
from torch.utils.cpp_extension import BuildExtension, CUDAExtension, _get_cuda_arch_flags
import os
import glob
import itertools

_arch_flags = _get_cuda_arch_flags()
print('arch flags:', _arch_flags)

_root = os.path.split(os.path.abspath(__file__))[0]
print("root path:", _root)
if not os.path.exists(os.path.join(_root, 'build/__cmrc_Renderer-kernels')):
    print("No resources found, did you run CMake beforehand?")
    exit(-1)
def get_files(base):
    fx1 = glob.iglob(base + "/**/*.cu", recursive=True)
    fx2 = glob.iglob(base + "/**/*.cpp", recursive=True)
    fx3 = glob.iglob(base + "/**/*.c", recursive=True)
    fx = itertools.chain(fx1, fx2, fx3)
    return [os.path.relpath(f, _root) for f in fx]

_renderer_files = get_files(os.path.join(_root, 'renderer'))
_binding_files = get_files(os.path.join(_root, 'bindings'))
_resource_files = get_files(os.path.join(_root, 'build/__cmrc_Renderer-kernels/intermediate')) +\
    ['build/__cmrc_Renderer-kernels/lib.cpp']
_thirdparty_files = get_files(os.path.join(_root, 'third-party/lz4/lib'))
print("renderer files:", _renderer_files)
print("binding files:", _binding_files)
print("resource files:", _resource_files)
print("third party files:", _thirdparty_files)

_include_dirs = [
    '%s/renderer'%_root,
    '%s/third-party/cuMat'%_root,
    '%s/third-party/cuMat/third-party'%_root,
    '%s/third-party/magic_enum/include'%_root,
    '%s/third-party/cudad/include/cudAD'%_root,
    '%s/third-party/tinyformat'%_root,
    '%s/third-party/nlohmann'%_root,
    '%s/third-party/lz4/lib'%_root,
    '%s/build/_cmrc/include'%_root,
    '/usr/include',
]

_libraries = [
    'cuda',
    'nvrtc',
    'curand',
]

_common_args = [
    '-std=c++17',
    '-DNVCC_ARGS="%s"'%_arch_flags[0],
    '-DRENDERER_RUNTIME_COMPILATION=1',
    '-DUSE_DOUBLE_PRECISION=0',
    '-DCDUMAT_SINGLE_THREAD_CONTEXT=1',
    '-DTHRUST_IGNORE_CUB_VERSION_CHECK=1',
    '-DRENDERER_BUILD_CPU_KERNELS=0',
]

setup(
    name='pyrenderer',
    ext_modules=[
        CUDAExtension('pyrenderer',
            _renderer_files+_binding_files+_resource_files+_thirdparty_files,
            extra_compile_args = {
                'cxx': _common_args,
                'nvcc': _common_args+["--extended-lambda"]
            },
            include_dirs = _include_dirs,
            libraries = _libraries),
    ],
    cmdclass={
        'build_ext': BuildExtension
    })

5.3 编译成功!

编译成功完整输出:

(py38torch18) qianyi@titanxp-x4-193-162:~/DiffDVR/build$ make
[  1%] Generating Renderer-kernels resource loader
[  2%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/cooperative_groups.cuh
[  3%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/helper_math.cuh
[  4%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_adjoint.cuh
[  5%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_blending.cuh
[  6%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_camera.cuh
[  7%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_commons.cuh
[  8%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_compareToImage.cuh
[  9%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_interpolation.cuh
[ 10%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_kernels.cuh
[ 11%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_settings.cuh
[ 12%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_tensor.cuh
[ 13%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_tf.cuh
[ 14%] Generating intermediate file for /home/qianyi/DiffDVR/renderer/renderer_utils.cuh
[ 15%] Generating intermediate file for /home/qianyi/DiffDVR/third-party/cudad/include/cudAD/cmath_cuda.cuh
[ 16%] Generating intermediate file for /home/qianyi/DiffDVR/third-party/cudad/include/cudAD/forward.h
[ 17%] Generating intermediate file for /home/qianyi/DiffDVR/third-party/cudad/include/cudAD/forward_vector.h
[ 18%] Generating intermediate file for /home/qianyi/DiffDVR/third-party/cudad/include/cudAD/macros.h
[ 19%] Generating intermediate file for /home/qianyi/DiffDVR/third-party/cudad/include/cudAD/optimization.h
[ 20%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/lib.cpp.o
[ 21%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/cooperative_groups.cuh.cpp.o
[ 22%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/helper_math.cuh.cpp.o
[ 23%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_adjoint.cuh.cpp.o
[ 24%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_blending.cuh.cpp.o
[ 25%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_camera.cuh.cpp.o
[ 26%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_commons.cuh.cpp.o
[ 27%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_compareToImage.cuh.cpp.o
[ 28%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_interpolation.cuh.cpp.o
[ 29%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_kernels.cuh.cpp.o
[ 30%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_settings.cuh.cpp.o
[ 31%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_tensor.cuh.cpp.o
[ 32%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_tf.cuh.cpp.o
[ 33%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/renderer/renderer_utils.cuh.cpp.o
[ 34%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/third-party/cudad/include/cudAD/cmath_cuda.cuh.cpp.o
[ 35%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/third-party/cudad/include/cudAD/forward.h.cpp.o
[ 36%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/third-party/cudad/include/cudAD/forward_vector.h.cpp.o
[ 37%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/third-party/cudad/include/cudAD/macros.h.cpp.o
[ 38%] Building CXX object CMakeFiles/Renderer-kernels.dir/__cmrc_Renderer-kernels/intermediate/third-party/cudad/include/cudAD/optimization.h.cpp.o
[ 39%] Linking CXX static library libRenderer-kernels.a
[ 39%] Built target Renderer-kernels
[ 40%] Building C object third-party/lz4/CMakeFiles/lz4.dir/lib/lz4.c.o
[ 41%] Building C object third-party/lz4/CMakeFiles/lz4.dir/lib/lz4frame.c.o
[ 42%] Building C object third-party/lz4/CMakeFiles/lz4.dir/lib/lz4hc.c.o
[ 43%] Building C object third-party/lz4/CMakeFiles/lz4.dir/lib/xxhash.c.o
[ 44%] Building CXX object third-party/lz4/CMakeFiles/lz4.dir/lib/lz4cpp.cpp.o
[ 45%] Linking CXX static library liblz4.a
[ 45%] Built target lz4
[ 46%] Building CXX object renderer/CMakeFiles/Renderer.dir/volume.cpp.o
[ 47%] Building CXX object renderer/CMakeFiles/Renderer.dir/volume_implicit.cpp.o
[ 48%] Building CXX object renderer/CMakeFiles/Renderer.dir/camera.cpp.o
[ 50%] Building CXX object renderer/CMakeFiles/Renderer.dir/tf_utils.cpp.o
[ 51%] Building CXX object renderer/CMakeFiles/Renderer.dir/renderer.cpp.o
[ 52%] Building CXX object renderer/CMakeFiles/Renderer.dir/renderer_cpu.cpp.o
/home/qianyi/DiffDVR/renderer/renderer_cpu.cpp:55: warning: "SWITCH_TF_MODE" redefined
   55 | #define SWITCH_TF_MODE(vfm, cm, tf, blend_static, ...) \
      | 
In file included from /home/qianyi/DiffDVR/renderer/renderer_kernels.cuh:7,
                 from /home/qianyi/DiffDVR/renderer/renderer_cpu.cpp:4:
/home/qianyi/DiffDVR/renderer/renderer_tf.cuh:864: note: this is the location of the previous definition
  864 | #define SWITCH_TF_MODE(tf_dynamic, ...) \
      | 
[ 53%] Building CXX object renderer/CMakeFiles/Renderer.dir/renderer_cuda.cpp.o
[ 54%] Building CXX object renderer/CMakeFiles/Renderer.dir/sha1.cpp.o
[ 55%] Building CXX object renderer/CMakeFiles/Renderer.dir/losses.cpp.o
[ 56%] Building CXX object renderer/CMakeFiles/Renderer.dir/kernel_loader.cpp.o
[ 57%] Building CUDA object renderer/CMakeFiles/Renderer.dir/renderer_cuda_impl.cu.o
[ 58%] Building CUDA object renderer/CMakeFiles/Renderer.dir/camera_impl.cu.o

[ 59%] Building CUDA object renderer/CMakeFiles/Renderer.dir/losses_impl.cu.o

[ 61%] Linking CXX static library libRenderer.a
[ 61%] Built target Renderer
[ 62%] Generating Gui-resources resource loader
[ 63%] Generating intermediate file for /home/qianyi/DiffDVR/gui/resources/fa-regular-400.ttf
[ 64%] Generating intermediate file for /home/qianyi/DiffDVR/gui/resources/fa-solid-900.ttf
[ 65%] Building CXX object gui/CMakeFiles/Gui-resources.dir/__cmrc_Gui-resources/lib.cpp.o
[ 66%] Building CXX object gui/CMakeFiles/Gui-resources.dir/__cmrc_Gui-resources/intermediate/resources/fa-regular-400.ttf.cpp.o
[ 67%] Building CXX object gui/CMakeFiles/Gui-resources.dir/__cmrc_Gui-resources/intermediate/resources/fa-solid-900.ttf.cpp.o
[ 68%] Linking CXX static library libGui-resources.a
[ 68%] Built target Gui-resources
[ 69%] Building CXX object gui/CMakeFiles/Gui.dir/main.cpp.o
[ 70%] Building CXX object gui/CMakeFiles/Gui.dir/visualizer.cpp.o
[ 71%] Building CXX object gui/CMakeFiles/Gui.dir/tf_editor.cpp.o

[ 73%] Building CXX object gui/CMakeFiles/Gui.dir/quad_drawer.cpp.o
[ 74%] Building CXX object gui/CMakeFiles/Gui.dir/camera_gui.cpp.o
[ 75%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui.cpp.o
[ 76%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui_demo.cpp.o
[ 77%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui_draw.cpp.o
[ 78%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui_widgets.cpp.o
[ 79%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui_impl_opengl3.cpp.o
[ 80%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui_impl_glfw.cpp.o
[ 81%] Building CXX object gui/CMakeFiles/Gui.dir/imgui/imgui_extension.cpp.o
[ 82%] Building CXX object gui/CMakeFiles/Gui.dir/__/third-party/lodepng/lodepng.cpp.o
[ 83%] Building CXX object gui/CMakeFiles/Gui.dir/__/third-party/tinyxml2/tinyxml2.cpp.o
[ 84%] Linking CXX executable Gui
Copies the executable to bin/
[ 84%] Built target Gui
[ 85%] Building CXX object bindings/CMakeFiles/pyrenderer.dir/bindings.cpp.o
/home/qianyi/DiffDVR/bindings/bindings.cpp: In lambda function:
/home/qianyi/DiffDVR/bindings/bindings.cpp:282:22: warning: narrowing conversion of ‘(((long unsigned int)((long int)info.pybind11::buffer_info::strides.std::vector<long int>::operator[](0))) / sizeof (real_t))’ from ‘long unsigned int’ to ‘ssize_t’ {aka ‘long int’} [-Wnarrowing]
  282 |      info.strides[0] / sizeof(real_t),
/home/qianyi/DiffDVR/bindings/bindings.cpp:283:22: warning: narrowing conversion of ‘(((long unsigned int)((long int)info.pybind11::buffer_info::strides.std::vector<long int>::operator[](1))) / sizeof (real_t))’ from ‘long unsigned int’ to ‘ssize_t’ {aka ‘long int’} [-Wnarrowing]
  283 |      info.strides[1] / sizeof(real_t),
/home/qianyi/DiffDVR/bindings/bindings.cpp:284:22: warning: narrowing conversion of ‘(((long unsigned int)((long int)info.pybind11::buffer_info::strides.std::vector<long int>::operator[](2))) / sizeof (real_t))’ from ‘long unsigned int’ to ‘ssize_t’ {aka ‘long int’} [-Wnarrowing]
  284 |      info.strides[2] / sizeof(real_t) };
[ 86%] Linking CXX shared module pyrenderer.cpython-38-x86_64-linux-gnu.so
Copies the python extension to bin/
[ 86%] Built target pyrenderer
[ 87%] Building CXX object unittests/CMakeFiles/Test.dir/main.cpp.o
In file included from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/Logging.h:28,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/core/TensorImpl.h:21,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:13,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Tensor.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Context.h:4,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/ATen.h:9,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/types.h:3,
                 from /home/qianyi/DiffDVR/renderer/renderer.h:6,
                 from /home/qianyi/DiffDVR/unittests/main.cpp:5:
/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/logging_is_not_google_glog.h:123: warning: "CHECK" redefined
  123 | #define CHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " "
      | 
In file included from /home/qianyi/DiffDVR/unittests/main.cpp:2:
/home/qianyi/DiffDVR/third-party/catch/catch.hpp:17588: note: this is the location of the previous definition
17588 | #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
      | 
[ 88%] Building CXX object unittests/CMakeFiles/Test.dir/testAdjointUtils.cpp.o
[ 89%] Building CXX object unittests/CMakeFiles/Test.dir/testAdjointBlending.cpp.o
[ 90%] Building CXX object unittests/CMakeFiles/Test.dir/testAdjointTF.cpp.o
[ 91%] Building CXX object unittests/CMakeFiles/Test.dir/testAdjointCamera.cpp.o
[ 92%] Building CXX object unittests/CMakeFiles/Test.dir/testAdjointInterpolation.cpp.o
[ 93%] Building CXX object unittests/CMakeFiles/Test.dir/testCudaCompilation.cpp.o
[ 94%] Building CXX object unittests/CMakeFiles/Test.dir/testConsistencyCamera.cpp.o
In file included from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/Logging.h:28,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/core/TensorImpl.h:21,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:13,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Tensor.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Context.h:4,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/ATen.h:9,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/types.h:3,
                 from /home/qianyi/DiffDVR/renderer/renderer.h:6,
                 from /home/qianyi/DiffDVR/unittests/testConsistencyCamera.cpp:10:
/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/logging_is_not_google_glog.h:123: warning: "CHECK" redefined
  123 | #define CHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " "
      | 
In file included from /home/qianyi/DiffDVR/unittests/testConsistencyCamera.cpp:7:
/home/qianyi/DiffDVR/third-party/catch/catch.hpp:17588: note: this is the location of the previous definition
17588 | #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
      | 
[ 95%] Building CXX object unittests/CMakeFiles/Test.dir/testConsistencyTF.cpp.o
In file included from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/Logging.h:28,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/core/TensorImpl.h:21,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:13,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Tensor.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Context.h:4,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/ATen.h:9,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/types.h:3,
                 from /home/qianyi/DiffDVR/renderer/renderer.h:6,
                 from /home/qianyi/DiffDVR/unittests/testConsistencyTF.cpp:10:
/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/logging_is_not_google_glog.h:123: warning: "CHECK" redefined
  123 | #define CHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " "
      | 
In file included from /home/qianyi/DiffDVR/unittests/testConsistencyTF.cpp:7:
/home/qianyi/DiffDVR/third-party/catch/catch.hpp:17588: note: this is the location of the previous definition
17588 | #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
      | 
[ 96%] Building CXX object unittests/CMakeFiles/Test.dir/testNonConvexDensity.cpp.o
In file included from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/Logging.h:28,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/core/TensorImpl.h:21,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:13,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Tensor.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Context.h:4,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/ATen.h:9,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/types.h:3,
                 from /home/qianyi/DiffDVR/unittests/testNonConvexDensity.cpp:2:
/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/logging_is_not_google_glog.h:123: warning: "CHECK" redefined
  123 | #define CHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " "
      | 
In file included from /home/qianyi/DiffDVR/unittests/testNonConvexDensity.cpp:1:
/home/qianyi/DiffDVR/third-party/catch/catch.hpp:17588: note: this is the location of the previous definition
17588 | #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
      | 
[ 97%] Building CXX object unittests/CMakeFiles/Test.dir/testMath.cpp.o
In file included from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/Logging.h:28,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/core/TensorImpl.h:21,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/core/TensorBody.h:13,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Tensor.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/Context.h:4,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/ATen/ATen.h:9,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/types.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/data/dataloader_options.h:4,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/data/dataloader/base.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/data/dataloader/stateful.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/data/dataloader.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/data.h:3,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/all.h:8,
                 from /home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/torch/torch.h:3,
                 from /home/qianyi/DiffDVR/unittests/testMath.cpp:5:
/home/qianyi/anaconda3/envs/py38torch18/lib/python3.8/site-packages/torch/include/c10/util/logging_is_not_google_glog.h:123: warning: "CHECK" redefined
  123 | #define CHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " "
      | 
In file included from /home/qianyi/DiffDVR/unittests/testMath.cpp:1:
/home/qianyi/DiffDVR/third-party/catch/catch.hpp:17588: note: this is the location of the previous definition
17588 | #define CHECK( ... ) INTERNAL_CATCH_TEST( "CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ )
      | 
[ 98%] Building CXX object unittests/CMakeFiles/Test.dir/__/third-party/lodepng/lodepng.cpp.o
[100%] Linking CXX executable Test
Copies the executable to bin/
[100%] Built target Test

虽然很多warning但是没关系!

写在最后

前面配环境部分时隔一段时间有些细节不太记得了,后面编译部分为了写博客重新跑了一遍。

遇到问题很大可能是环境变量或者是路径没设置好。

作者人很nice,遇到问题也可以直接在github上面问他~

希望能帮到你!也欢迎讨论!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值