graphdeco-inria / gaussian-splatting

Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"
https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
Other
13.57k stars 1.74k forks source link

SIBR viewer cmake -Bbuild fails (Ubuntu 20.04) #330

Open jingwu2121 opened 11 months ago

jingwu2121 commented 11 months ago

Hi,

I have done running render.py and metrics.py, but meet some errors when using cmake to build the SIBR viewer. Could you help me to fix this problem?

My device: CUDA-toolkit=11.8, cmake=3.27.7.

I also tested cmake=3.24.1, which does not work.

I am running this command:

cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release

wujing@wujing-All-Series:~/Code/gaussian-splatting/SIBR_viewers$ cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release -- The C compiler identification is GNU 9.4.0 -- The CXX compiler identification is GNU 9.4.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Warning at CMakeLists.txt:21 (message): Untested version of cmake. If you checked everything is working properly, please update 3.27.0 in the main CmakeLists.txt with the version you tested.

-- Git found: /usr/bin/git -- SIBR version : BRANCH fossa_compatibility COMMIT_HASH 9906b16831d215ac7fdb10a24780411a4db931fd TAG VERSION 0.9.6-166-g9906b16 -- Install path set to /home/wujing/Code/gaussian-splatting/SIBR_viewers/install. Note you can provide default program options for Visual Studio target properties by either setting a value for the cmake cached variable 'SIBR_PROGRAMARGS' or by setting a new environment variable 'SIBR_PROGRAMARGS' --

** Handling core dependencies ** Activating EGL support for headless GLFW/GLEW There is no provided GLEW library for your compiler, relying on find_package to find it -- FindGLEW: did not find GLEW CMake config file. Searching for libraries. -- FindGLEW: GLEW_USE_STATIC_LIBS is undefined. Treated as FALSE. -- FindGLEW: GLEW_INCLUDE_DIR: /usr/include -- FindGLEW: GLEW_INCLUDE_DIRS: /usr/include -- FindGLEW: CMAKE_FIND_LIBRARY_SUFFIXES for SHARED: .so;.a -- FindGLEW: CMAKE_FIND_LIBRARY_SUFFIXES for STATIC: .so -- FindGLEW: GLEW_SHARED_LIBRARY_RELEASE: /usr/lib/x86_64-linux-gnu/libGLEW.so -- FindGLEW: GLEW_STATIC_LIBRARY_RELEASE: GLEW_STATIC_LIBRARY_RELEASE-NOTFOUND -- FindGLEW: GLEW_SHARED_LIBRARY_DEBUG: GLEW_SHARED_LIBRARY_DEBUG-NOTFOUND -- FindGLEW: GLEW_STATIC_LIBRARY_DEBUG: GLEW_STATIC_LIBRARY_DEBUG-NOTFOUND -- FindGLEW: GLEW_SHARED_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLEW.so -- FindGLEW: GLEW_STATIC_LIBRARY: GLEW_STATIC_LIBRARY-NOTFOUND -- FindGLEW: GLEW_LIBRARIES: /usr/lib/x86_64-linux-gnu/libGLEW.so -- FindGLEW: GLEW_VERSION_MAJOR: 2 -- FindGLEW: GLEW_VERSION_MINOR: 1 -- FindGLEW: GLEW_VERSION_MICRO: 0 -- FindGLEW: GLEW_VERSION: 2.1.0 -- FindGLEW: Creating GLEW::glew imported target. -- FindGLEW: Creating GLEW::GLEW imported target. There is no provided ASSIMP library for your compiler, relying on find_package to find it NO ASSIMP DIR ASSIMP_DIR SETTING ASSIMP DIR ASSIMP_DIR ASSIMP DIR ASSIMP_DIR CMake Warning (dev) at /snap/cmake/1336/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to find_package_handle_standard_args (EMBREE) does not match the name of the calling package (embree). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/linux/Modules/Findembree.cmake:87 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/linux/dependencies.cmake:127 (find_package) cmake/linux/include_once.cmake:20 (include) src/CMakeLists.txt:46 (include_once) This warning is for project developers. Use -Wno-dev to suppress it.

There is no provided OpenCV library for your compiler, relying on find_package to find it -- Library imgui already available, skipping. -- Library nativefiledialog already available, skipping. -- Library mrf already available, skipping. -- Library nanoflann already available, skipping. -- Library picojson already available, skipping. -- Library rapidxml already available, skipping. -- Library xatlas already available, skipping. CMake Deprecation Warning at extlibs/xatlas/xatlas/CMakeLists.txt:4 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

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

-- ****

-- Adding dataset_tools project -- BUILD_IBR_DATASET_TOOLS is OFF -- Adding ulr project -- BUILD_IBR_ULR is OFF -- Adding basic project -- BUILD_IBR_BASIC is ON -- Adding gaussianviewer project -- BUILD_IBR_GAUSSIANVIEWER is ON CMake Error at /snap/cmake/1336/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:753 (message): Compiling the CUDA compiler identification source file "CMakeCUDACompilerId.cu" failed.

Compiler: /usr/bin/nvcc

Build flags:

Id flags: --keep;--keep-dir;tmp -v

The output was:

255

$ SPACE=

$ CUDART=cudart

$ HERE=/usr/lib/nvidia-cuda-toolkit/bin

$ THERE=/usr/lib/nvidia-cuda-toolkit/bin

$ _TARGETSIZE=

$ _TARGETDIR=

$ _TARGETSIZE=64

$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice

$

PATH=/usr/lib/nvidia-cuda-toolkit/bin:/usr/local/cuda-11.8/bin:/home/wujing/anaconda3/envs/gaussian_splatting/bin:/home/wujing/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda-11.8/bin:/usr/local/cuda-11.8/bin:/home/wujing/anaconda3/bin:/home/wujing/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

$ LIBRARIES= -L/usr/lib/x86_64-linux-gnu/stubs -L/usr/lib/x86_64-linux-gnu

$ rm tmp/a_dlink.reg.c

$ gcc -D__CUDA_ARCH__=300 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS

-DCUDACC -DNVCC -DCUDACC_VER_MAJOR=10 -DCUDACC_VER_MINOR=1 -DCUDACC_VER_BUILD=243 -include "cuda_runtime.h" -m64 "CMakeCUDACompilerId.cu" > "tmp/CMakeCUDACompilerId.cpp1.ii"

$ cicc --c++14 --gnu_version=90400 --allow_managed -arch compute_30 -m64

-ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "CMakeCUDACompilerId.fatbin.c" -tused -nvvmir-library "/usr/lib/nvidia-cuda-toolkit/libdevice/libdevice.10.bc" --gen_module_id_file --module_id_file_name "tmp/CMakeCUDACompilerId.module_id" --orig_src_file_name "CMakeCUDACompilerId.cu" --gen_c_file_name "tmp/CMakeCUDACompilerId.cudafe1.c" --stub_file_name "tmp/CMakeCUDACompilerId.cudafe1.stub.c" --gen_device_file_name "tmp/CMakeCUDACompilerId.cudafe1.gpu" "tmp/CMakeCUDACompilerId.cpp1.ii" -o "tmp/CMakeCUDACompilerId.ptx"

$ ptxas -arch=sm_30 -m64 "tmp/CMakeCUDACompilerId.ptx" -o

"tmp/CMakeCUDACompilerId.sm_30.cubin"

ptxas fatal : Value 'sm_30' is not defined for option 'gpu-name'

# --error 0xff --

Call Stack (most recent call first): /snap/cmake/1336/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD) /snap/cmake/1336/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test) /snap/cmake/1336/share/cmake-3.27/Modules/CMakeDetermineCUDACompiler.cmake:307 (CMAKE_DETERMINE_COMPILER_ID) src/projects/gaussianviewer/apps/gaussianViewer/CMakeLists.txt:12 (project)

-- Configuring incomplete, errors occurred!

dongfeicui commented 10 months ago

you can install embree by this link embree v3.6.1 About enviromental variable embree_DIR EMBREE_INCLUDE_DIRS EMBREE_LIBRARY or you can modify origin file in line 127 assign embree path

image

zichen34 commented 10 months ago

There may be old-version nvidia-cuda-toolkit packages installed in your computer. You can check it by:

apt-cache policy nvidia-cuda-toolkit

For me, a package of version 10.1 appeared, which may disturb the calling for cuda-11.6, so I removed it:

sudo apt remove nvidia-cuda-toolkit

Re-build it and this error is gone.

Master-cai commented 2 months ago

@zichen34 Thanks! It works for me.