개요
리눅스 개발을 하다보면, 엔비디아 드라이버, 도커, CMake 등 환경을 잡을 일이 있다. GPU가 있는 환경에서 경험상 가장 유용한 방법은
- NVIDIA 드라이버 설치
- NVIDIA 컨테이너 툴킷 설치
- Docker Hub에서 이미지 다운로드
- CMake 등 여러 빌드 도구 및 패키지 설치
이 과정이면 NVIDIA GPU 환경에서 작업마다 패키지 의존성을 피하여 독립된 환경을 구축할 수 있다.
NVIDIA 드라이버 설치
GPU를 활용한다면, 엔비디아 드라이버는 필수이다. 아래 명령어로 적절한 NVIDIA 드라이버 설치 유무를 확인한다.
nvidia-smi
GPU 정보가 제대로 뜨지 않는다면, 설치해야 한다. 아래 명령어로 적절한 드라이버 넘버를 확인한다.
ubintu-drivers devices
nvidia-driver-XXX - distro non-free recommnede 로그의 넘버로 NVIDIA 드라이버를 설치한다.
sudo apt-get install nvidia-driver-XXX
NVIDIA Container Toolkit 설치
NVIDIA Container Toolkit은 도커 컨테이너 내에서 GPU를 사용할 수 있도록 관리한다.
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker
Docker 설치
우분투 시스템 패키지 업데이트
sudo apt-get update
패키지 설치
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Docker의 공식 GPG 키를 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Docker의 공식 apt 레포지토리를 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
우분투 시스템 패키지 업데이트
sudo apt-get update
Docker 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io
Docker 상태 확인
sudo systemctl status docker
Docker 실행 확인
sudo docker run hello-world
C++ Clang 컴파일러 설치
아래 명령어로 clang을 설치한다.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install clang
clang --version
아무 C++ 코드를 작성하고, 아래 명령어로 테스트 C++ 코드를 실행한다.
clang++ -std=c++17 -o test test.cpp
./test
Docker 이미지 다운로드
GPU 활용 가능한 Docker 이미지를 Docker Hub에서 다운받을 수 있다. 아래 링크에서 파이토치 이미지들이 많이 있다. cuda, cudnn 버전을 보고 선택해야 한다. Docker Hub pytorch/pytorch
runtime, devel 등 몇 가지 버전이 있다. runtime은 cudnn을 포함하여 딥러닝 애플리케이션을 가속한다. 반면에 devel은 CUDA 애플리케이션을 직접 컴파일 할 수 있다.
# runtime 이미지
docker pull pytorch/pytorch:2.4.0-cuda11.8-cudnn9-runtime
# CUDA 개발 가능한 이미지
docker pull pytorch/pytorch:2.4.0-cuda11.8-cudnn9-devel
다운로드한 이미지를 아래의 명령어로 실행할 수 있다.
# 다운로드한 이미지를 빌드
docker build -t <이미지 이름> .
# 이미지 확인
docker images
# 빌드한 이미지로 컨테이너 생성
docker run -it -d -p 호스트 포트:컨테이너 포트 -v 호스트 디렉토리:컨테이너 디렉토리 --name <이름> <이미지이름 >
# 컨테이너 목록 확인
docker ps
# 종료된 컨테이너 포함 목록 확인
docker ps -a
# 종료된 컨테이너 삭제
docker rm <컨테이너 이름>
# 이미지 삭제
docker rmi <이미지 이름>
이 외에 다양한 명령어들을 사용할 수 있다.
CMake 설치
아래 명령어로 cmake를 설치한다.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake
cmake --version
CMkaeList.txt를 만들고 아래 내용을 작성하여 테스트 C++ 코드를 빌드한다.
이때 CMkaeList.txt는 프로젝트 폴더 안에 위치해야 한다.
project(test VERSION 1.0)
set(CMAKE_CXX_STANDARD 17)
set(CAMKE_CXX_STANDARD_REQUIRED True)
add_executable(${PROJECT_NAME} test.cpp)
아래 명령어로 CMake를 통해 소스 코드를 빌드한다.
mkdir build
cd build
cmake ..
make
아래 명령어로 빌드한 프로젝트를 실행한다.
./test