이전 포스트에 이어서 추가로 설치해야 할 것은 cuDNN과 Fabric Manager이다.
cuDNN은 엔비디아 CUDA 딥 뉴럴 네트워크 라이브러리로 GPU 가속화를 지원해주는 라이브러리이다.
cuDNN은 CLI로 바로 설치하기는 어렵고, Nvidia의 홈페이지에서 다운받아 설치할 수 있다. 먼저 아래 링크로 접속해보자. 아래 링크에 접속하면 로그인을 요구할텐데, 그때는 로그인을 진행한 후에 아래 절차를 따라가도록 하자.
[Nvidia cuDNN]
https://developer.nvidia.com/cudnn
링크에서 Download cuDNN을 클릭한다.
다음으로 동의를 클릭한 후
CUDA 버전에 맞는 cuDNN을 클릭하면 된다. 필자의 경우 CUDA 11.8 을 설치하고 있으므로, 아래에 있는 CUDA 11.x를 선택했다.
선택하면 다시 다운로드 받을 수 있는 링크가 나오는데, 필자는 Local Installer for Linux x86_64 (Tar)을 다운받았다. 필자는 로컬에 tar 파일을 다운받고 A100 서버로 scp를 통해 전달하였다.
원하는 위치에서 압축을 해제하고 권한을 부여한다.
# 압축해제
tar -xvf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
# 권한부여
sudo cp cuda/include/cudnn* /usr/local/cuda/include
sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
설치가 잘 되었는지 확인해본다.
ldconfig -p | grep cudnn
아래와 같은 결과가 나오면 성공한 것이다.
A100과 같은 고가의 GPU 서버는 nvswitch가 장착이 되어있다고 한다. 사실 이걸 설치하지 않더라도 nvidia-smi나 nvcc --version을 사용했을때 정상적으로 작동하는 것을 확인할 수 있다. 그러나 만약 이 상태에서 GPU 서버를 사용하면 GPU가 연결되지 않는 현상을 발견할 수 있다.
필자의 경우 무엇이 문제인지 감이 잡히지 않아 삽질(?)을 반나절 동안했지만 이 글을 보는 여러분들은 같은 길을 걷지 않길 바란다.
설치는 생각보다 간단한데, Nvidia Driver와 호환되는 버전을 설치하여야 한다. 아래 링크로 접속하면 다양한 선택지가 있다.
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/
다양한 버전들이 존재한다는 것을 확인할 수 있다.
설치는 해당 버전 중 하나를 설치하면 되는데, 필자의 경우에는 520버전을 설치하였다. CLI에서 아래 명령어를 사용하면 된다. 버전에 맞게 뒷 숫자를 변경하면 된다.
apt-get install cuda-drivers-fabricmanager-520
이제부터는 GPU를 정상적으로 사용할 수 있을 것이다.