FangGet / BundleFusion_Ubuntu_Pangolin

a porting for BundleFusion working on ubuntu, with Pangolin as visualizer
Other
122 stars 32 forks source link

Errors in executing 'make -j8' #5

Closed Uncle-Justice closed 3 years ago

Uncle-Justice commented 3 years ago

Hi, I got a problem when executing make -j8. The outputs are as below:

uj@uj:~/work/ViewCode/BundleFusionUbuntu/build$ make -j8
[  1%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_SIFTImageManager.cu.o
[  3%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_PangolinOutputWrapper.cu.o
[  7%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_ProgramCU.cu.o
[  7%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_OnlineBundler.cu.o
[  9%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_CUDASiftConstant.cu.o
[ 11%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/Solver/BundleFusion_generated_SolverBundling.cu.o
[ 12%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_CUDAImageUtil.cu.o
[ 14%] Building NVCC (Device) object CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_CUDACache.cu.o
CMake Error at BundleFusion_generated_ProgramCU.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/SiftGPU/./BundleFusion_generated_ProgramCU.cu.o

CMake Error at BundleFusion_generated_SIFTImageManager.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/SiftGPU/./BundleFusion_generated_SIFTImageManager.cu.o

CMake Error at BundleFusion_generated_PangolinOutputWrapper.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/./BundleFusion_generated_PangolinOutputWrapper.cu.o

CMakeFiles/BundleFusion.dir/build.make:63: recipe for target 'CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_ProgramCU.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_ProgramCU.cu.o] Error 1
make[2]: *** 正在等待未完成的任务....
CMakeFiles/BundleFusion.dir/build.make:98: recipe for target 'CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_PangolinOutputWrapper.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_PangolinOutputWrapper.cu.o] Error 1
CMakeFiles/BundleFusion.dir/build.make:77: recipe for target 'CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_SIFTImageManager.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_SIFTImageManager.cu.o] Error 1
CMake Error at BundleFusion_generated_OnlineBundler.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/./BundleFusion_generated_OnlineBundler.cu.o

CMakeFiles/BundleFusion.dir/build.make:175: recipe for target 'CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_OnlineBundler.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_OnlineBundler.cu.o] Error 1
CMake Error at BundleFusion_generated_CUDASiftConstant.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/SiftGPU/./BundleFusion_generated_CUDASiftConstant.cu.o

CMake Error at BundleFusion_generated_SolverBundling.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/Solver/./BundleFusion_generated_SolverBundling.cu.o

CMake Error at BundleFusion_generated_CUDACache.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/./BundleFusion_generated_CUDACache.cu.o

CMakeFiles/BundleFusion.dir/build.make:70: recipe for target 'CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_CUDASiftConstant.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/SiftGPU/BundleFusion_generated_CUDASiftConstant.cu.o] Error 1
CMakeFiles/BundleFusion.dir/build.make:84: recipe for target 'CMakeFiles/BundleFusion.dir/src/Solver/BundleFusion_generated_SolverBundling.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/Solver/BundleFusion_generated_SolverBundling.cu.o] Error 1
CMake Error at BundleFusion_generated_CUDAImageUtil.cu.o.cmake:203 (message):
  Error generating
  /home/uj/work/ViewCode/BundleFusionUbuntu/build/CMakeFiles/BundleFusion.dir/src/./BundleFusion_generated_CUDAImageUtil.cu.o

CMakeFiles/BundleFusion.dir/build.make:105: recipe for target 'CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_CUDACache.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_CUDACache.cu.o] Error 1
CMakeFiles/BundleFusion.dir/build.make:91: recipe for target 'CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_CUDAImageUtil.cu.o' failed
make[2]: *** [CMakeFiles/BundleFusion.dir/src/BundleFusion_generated_CUDAImageUtil.cu.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/BundleFusion.dir/all' failed
make[1]: *** [CMakeFiles/BundleFusion.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Is the problem from gpu?

I have compiled opencv, eigen and pangolin successfully.

The environments of my PC(ubuntu16.04) is as following:

uj@uj:~/work/ViewCode/BundleFusionUbuntu/build$ nvidia-smi
Wed Sep 30 09:22:31 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130                Driver Version: 384.130                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 105...  Off  | 00000000:09:00.0  On |                  N/A |
|  0%   45C    P8   ERR! /  90W |    246MiB /  4030MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1118      G   /usr/lib/xorg/Xorg                           199MiB |
|    0      2470      G   compiz                                        42MiB |
|    0      3096      G   /usr/lib/firefox/firefox                       1MiB |
+-----------------------------------------------------------------------------+
uj@uj:~/work/ViewCode/BundleFusionUbuntu/build$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
uj@uj:~/work/ViewCode/BundleFusionUbuntu/build$ gcc --version
gcc (GCC) 7.3.0
Copyright © 2017 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
uj@uj:~/work/ViewCode/BundleFusionUbuntu/build$ g++ --version
g++ (GCC) 7.3.0
Copyright © 2017 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
Uncle-Justice commented 3 years ago

Well, I changed th version of gcc&g++ to 5.5. The output of make -j8 changed with new errors:

/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp: In member function ‘void Visualization::PangolinOutputWrapper::run()’:
/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp:173:46: error: ‘struct pangolin::GlBufferCudaPtr’ has no member named ‘Free’
                         vertex_array_global->Free();
                                              ^
/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp:187:47: error: ‘struct pangolin::GlBufferCudaPtr’ has no member named ‘Free’
                         indices_array_global->Free();
                                               ^
/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp:201:46: error: ‘struct pangolin::GlBufferCudaPtr’ has no member named ‘Free’
                         colour_array_global->Free();
                                              ^
/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp:391:30: error: ‘struct pangolin::GlBufferCudaPtr’ has no member named ‘Free’
         vertex_array_global->Free();
                              ^
/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp:397:31: error: ‘struct pangolin::GlBufferCudaPtr’ has no member named ‘Free’
         indices_array_global->Free();
                               ^
/home/uj/work/ViewCode/BundleFusion_Ubuntu_Pangolin/src/PangolinOutputWrapper.cpp:403:30: error: ‘struct pangolin::GlBufferCudaPtr’ has no member named ‘Free’
         colour_array_global->Free();
                              ^

I reinstalled Pangolin and openGL, but nothing changed. TAT

RigerLee commented 3 years ago

@Uncle-Justice change -arch=sm_75 in CMakeLists.txt to -arch=sm_61 for GTX series

Uncle-Justice commented 3 years ago

@Uncle-Justice change -arch=sm_75 in CMakeLists.txt to -arch=sm_61 for GTX series

I changed it from 35 to 61 as you said but nothing changed...

@RigerLee

RigerLee commented 3 years ago

@Uncle-Justice Maybe cuda version matters? Also you should update your nvidia driver. I just make it work on my machine, with 1050Ti(cuda 10.1 nvidia-450) gcc 7.5 2020-09-30 12-07-02 的屏幕截图

FangGet commented 3 years ago

@Uncle-Justice first try make without pangolin? cmake with "cmake -DVISUALIZATION=OFF ..", see if this build and run successfully. if so, then change your pangolin and opengl version.

Uncle-Justice commented 3 years ago

I reinstalled the system and install CUDA10.1&gcc7. Then I met this error with visualisation config off:

/usr/bin/ld: 找不到 -lfreeimage
collect2: error: ld returned 1 exit status
CMakeFiles/BundleFusion.dir/build.make:1087: recipe for target 'libBundleFusion.so' failed
make[2]: *** [libBundleFusion.so] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/BundleFusion.dir/all' failed
make[1]: *** [CMakeFiles/BundleFusion.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

I tried to install this following this site. The package 'libfreeimage' could not be found while the compiling was OK.

In the original BundleFusion's issue, there are similar errors about 'freeimage'.

The error seems like I need to link freeimage to this?

FangGet commented 3 years ago

sudo apt-get install libfreeimage-dev

Uncle-Justice commented 3 years ago

Anyway, i reinstalled the whole stuff again and it works now. Thanks:)

But my GPU memory seems too small...