환경
•
Ubuntu 22.04 + RTX4090 기준
•
TRIPS 설치를 위해 CUDA 11.8로 설치했을 때 기준
설치 과정
conda 환경 끄기
conda deactivate
Shell
복사
환경에 깔린 CUDA 관련 파일이랑 겹침
sudo apt-get install \
git \
cmake \
ninja-build \
build-essential \
libboost-program-options-dev \
libboost-filesystem-dev \
libboost-graph-dev \
libboost-system-dev \
libeigen3-dev \
libflann-dev \
libfreeimage-dev \
libmetis-dev \
libgoogle-glog-dev \
libgtest-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev \
libceres-dev
Shell
복사
sudo apt-get install gcc-10 g++-10
export CC=/usr/bin/gcc-10
export CXX=/usr/bin/g++-10
export CUDAHOSTCXX=/usr/bin/g++-10
# ... and then run CMake against COLMAP's sources.
Shell
복사
sudo apt-get install -y nvidia-cuda-toolkit-gcc
Shell
복사
nvidia-cuda-toolkit 은 이미 TRIPS 설치할 때 같이 설치했기 때문에 nvidia-cuda-toolkit-gcc만 깔면 된다.
git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
Shell
복사
FindDependencies.cmake 수정
During CMake configuration specify CMAKE_CUDA_ARCHITECTURES as “native”, if you want to run COLMAP on your current machine only, “all”/”all-major” to be able to distribute to other machines, or a specific CUDA architecture like “75”, etc.
라고 되어있음.
그러나 기본 native로 되어있으면 장착된 4090에 맞게 compute_89를 찾는다.
그러면 11.8에서는 파일 없다고 에러난다.
실제로 89 관련 파일이 없어서 그렇다.
nvcc --list-gpu-arch 해보면 compute_89는 안 나오고 compute_87까지만 나온다.
그래서 그나마 가장 최신인 87로 설치해준다.
FindDependencies.cmake 파일 앞 부분에서 CMAKE_CUDA_ARCHITECTURES를 87로 선언해도 되고,
무식하게 아래와 같이 바꿔버려도 된다.
....
if(CUDA_ENABLED AND CUDA_FOUND)
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
set(CMAKE_CUDA_ARCHITECTURES "87")
endif()
....
Shell
복사
cmake .. -GNinja
Shell
복사
여기서 -- Enabling CUDA support 항목에서 archs 가 87로 제대로 뜨는지 확인
ninja
sudo ninja install
Shell
복사
colmap -h
Shell
복사
메뉴 다 뜨는지 확인 (CLI까지는 제대로 설치되었나)
colmap gui
Shell
복사
GUI까지 제대로 잘 뜨나 확인