본문 바로가기

카테고리 없음

한 GPU 서버 내에서 여러 개의 CUDA 버전을 설치하여 필요한 버전을 선택하여 사용하는 방법 (여러 개의 CUDA Toolkit)

※ 본 글은 필자의 경험에 근거하여 작성되었으며, 잘못된 정보가 포함될 수 있습니다. ※

 

  가끔 하나의 NVIDIA Driver만 존재하는 상황에서 여러 개의 CUDA Toolkit 버전이 필요한 상황이 있다. 예를 들어 어떠한 PyTorch 기반의 라이브러리는 Toolkit 버전 11.1에서만 돌아간다던지 하는 이슈가 발생할 수 있다. 이런 경우에, 하나의 GPU 서버 내에서 여러 개의 cuda를 설치해야 할 수 있다.

 

  필자는 Toolkit 11.1이 필요한 상황이 존재했다. GPU 서버에서 nvidia-smi 명령어를 사용하여 버전을 확인해 보았을 때, 설치되어 있는 NVIDIA 드라이버의 버전은 11.6이다. 따라서, Toolkit 11.1과는 호환이 될 것으로 보인다. 그러면 11.1 Toolkit을 어떻게 따로 설치하고, 기존에 설치되어 있는 기능에 피해를 주지 않을 수 있을까?

 

 

※ runfile (local) 다운로드 ※

 

  이럴 때는 내가 원하는 runfile (local)을 다운로드 한 뒤에, 원하는 경로에 설치하도록 하는 방법이 있다. CUDA의 경우 /usr/local의 특정한 폴더에 설치하면 되기 때문에, 기존에 존재하는 다른 Toolkit 버전은 건드리지 않을 수 있다. 예를 들어 cuda 11.1을 설치하기 위한 run 파일을 찾아서 다운로드할 수 있다.

 

  ▶ CUDA Toolkit 다운로드 링크: https://developer.nvidia.com/cuda-downloads

 

CUDA Toolkit 11.7 Downloads

Get the latest feature updates to NVIDIA's proprietary compute stack.

developer.nvidia.com

  ▶ CUDA Toolkit 과거 버전 다운로드 링크 예시: https://developer.nvidia.com/cuda-11.1.0-download-archive

 

CUDA Toolkit 11.1.0

Get CUDA Toolkit 11.1.0 for Linux and Windows.

developer.nvidia.com

 

 

  구체적으로 필자는 다음의 명령어를 이용하여 run 파일을 다운로드했다.

 

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run

 

  다음과 같이 설치를 진행하는 것이 기본일 것이다. 경로가 /usr/local/cuda-11.1로 명시되어 있는 것을 확인할 수 있다.

 

sudo sh cuda_11.1.0_455.23.05_linux.run --toolkit --toolkitpath=/usr/local/cuda-11.1

 

  다음과 같이 약관에 대한 내용이 나오고, 하나씩 읽어 보며 설치를 진행할 수 있다.

 

 

  하지만 약관을 읽다가 너무 길어서 결국 포기했다. 그래서 결국엔 slient 모드로 설치를 진행했다. 이때 몇 분에서 몇십 분까지도 걸릴 수 있는 것 같다.

 

sudo sh ./cuda_11.1.0_455.23.05_linux.run --silent --toolkit --toolkitpath=/usr/local/cuda-11.1

 

  설치가 완료되고 나면, 다음과 같이 /usr/local 경로에 설치된 cuda가 존재하는 것을 확인할 수 있다. 여기까지 왔다면 거의 다 온 것으로 볼 수 있다.

 

 

  CUDA가 설치되면 /usr/local/cuda에 대하여 symbolic link를 진행한다. 따라서 가장 먼저 LD_LIBRARY_PATH가 정상적으로 존재하는지 확인할 필요가 있다. 다음과 같은 명령어를 사용할 수 있다.

 

echo $LD_LIBRARY_PATH

 

  만약에 경로가 잡혀있지 않다면, 혹은 기본적으로 ~./bashrc 파일을 수정하여 가장 아랫줄에 다음의 내용을 넣을 수 있다.

 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

 

  이후에 다음과 같은 명령어를 사용하여 동작시킨다.

 

source ~/.bashrc

 

※ 설치 완료 확인하기 ※

 

  이제 다음과 같이 nvcc 명령어를 사용하여 정상적으로 CUDA Toolkit이 존재하는지 확인할 수 있다.

 

nvcc --version

 

  또한 다음의 명령어를 사용하여 라이브러리 경로가 정상적으로 잡혀 있는지 확인할 수 있다.

 

echo $LD_LIBRARY_PATH