2. Pre-installation Actions
CUDA 툴킷과 드라이버를 리눅스에 설치하기 전에 해야할 것들이 몇가지 있다:
- 시스템이 CUDA-가능 GPU를 갖고 있는지 확인하라.
- 시스템이 지원되는 버전의 리눅스를 구동시키고 있는지 확인하라.
- gcc가 설치되어 있는지 확인하라.
- 올바른 커널 헤더와 개발 패키지가 설치되어 있는지 확인하라.
- NVIDIA CUDA 툴킷을 다운로드하라.
- 설치 방법들의 충돌을 처리하라.
NOTE: -override
플래그로 인스톨러를 실행시킴으로써 설치 시간동안 필수 구성요소의 검사(prerequisites checks)를 중단(override)시킬 수 있다. NVIDIA CUDA 툴킷을 사용하려면 필수 구성요소가 필요할 것이라는 사실을 기억하라.
2.1. Verify You Have a CUDA-Capable GPU
여러분의 GPU에서 CUDA가 가능한지 확인하기 위해 여러분의 시스템에 설치되어 있는 배포판에서 System Properties
와 유사한 메뉴로 가라. 또는 커맨드 라인에서 다음 명령을 입력하라:
$ lspci | grep -i nvidia
만약 어떠한 세팅도 보이지 않는다면, 커맨드라인에서 update-pciids
(일반적으로 /sbin
에 있음)를 입력하여 리눅스가 관리하고 있는 PCI 하드웨어 데이터베이스를 업데이트하라. 그리고 방금 전의 lspci
명령을 다시 입력하라.
만약 여러분의 그래픽 카드가 NVIDIA 제품이고 http://developer.nvidia.com/cuda-gpus에서 열거한 제품 목록에 있다면, 여러분의 GPU에서는 CUDA가 가능한 것이다.
CUDA Toolkit의 릴리즈 노트에도 지원 제품의 목록을 포함하고 있다.
2.2. Verify You Have a Supported Version of Linux
CUDA 개발 툴들은 특정 리눅스 배포판에서만 지원된다. 해당되는 배포판 정보는 CUDA Toolkit 릴리즈 노트에서 확인할 수 있다.
여러분이 가동하고 있는 배포판과 릴리즈 넘버를 확인하기 위해 커맨드라인에서 다음 명령을 입력하라:
$ uname -m && cat /etc/*release
여러분은 다음과 유사한 출력을 볼 것이다. 물론 여러분의 시스템에 맞게 수정된 정보가 보일 것이다:
x86_64
Red Hat Enterprise Linux Workstation release 6.0 (Santiago)
x86_64은 여러분이 64비트 시스템에서 실행하고 있다는 것을 알려주는 것이다. 나머지는 여러분의 배포판에 대한 정보를 제공한다.
2.3. Verify the System Has gcc Installed
CUDA Toolkit을 이용하여 개발할 때 gcc 컴파일러가 필요하다. CUDA 어플리케이션을 실행하기 위해 필요한 것은 아니다. gcc 컴파일러는 일반적으로 리눅스가 설치될 때 그것의 일부로서 설치된다. 지원되는 리눅스 버전과 함께 설치된 gcc 버전은 대부분 정상적으로 잘 동작할 것이다.
여러분의 시스템에 설치된 gcc의 버전을 확인하기 위해 커맨드라인에서 다음 명령을 입력하라:
$ gcc --version
만약 에러 메시지가 표시되면, 여러분의 리눅스 배포판에 개발툴을 설치하거나 해당 버전의 gcc를 확보할 필요가 있다. 또한 그것과 호환되는 툴체인을 웹에서 다운받아 설치해야 한다.
2.4. Verify the System has the Correct Kernel Headers and Development Packages Installed
CUDA Driver는 드라이버를 인스톨하거나 드라이버를 다시 빌드할 때마다, 현재 동작하고 있는 커널 버전을 위한 커널 헤더와 개발 패키지가 설치되어 있는 것을 요구한다. 예를 들어, 만약 여러분의 시스템이 버전 3.17.4-301의 커널을 가동시키고 있다면, 3.17.4-301 커널 헤더와 개발 패키지 또한 설치되어 있어야 한다.
Runfile(인스톨 파일의 형태로서 실행파일 형태임) 인스톨이 패키지에 대한 검증(validation)을 수행하지 않지만, 드라이버의 RPM과 Deb 인스톨은 해당 버전의 패키지가 현재 설치되어 있지 않을 경우 커널 헤더와 개발 패키지를 설치하려고 시도할 것이다. 그러나 이 때 설치되는 것은 가장 최근 버전의 패키지이다. 이는 여러분의 시스템이 사용하고 있는 버전과 맞지 않을지도 모른다. 그래서 CUDA 드라이버를 설치하기에 앞서 적정한 버전의 커널 헤더와 개발 패키지를 수동으로 설치하는 것이 바람직하다. 물론 여러분이 커널 버전을 변경할 때도 마찬가지로 수동으로 설치하라.
여러분의 시스템이 구동하고 있는 커널의 버전을 확인하기 위해 다음 명령을 실행하라:
$ uname -r
이것은 CUDA Driver를 설치하기 전에 설치해야 할 커널 헤더와 개발 패키지의 버전이 될 것이다. 이 명령은 설치할 패키지 버전을 특정하기 위해 아래에서 여러 번 실행될 것이다. 아래에 언급한 지시 사항은 커널 사용을 위한 일반 케이스(common-case)의 시나리오임을 염두하라. 더 발전된 케이스(커스터 커널 브랜치 등)에서는 커널 헤더와 소스가 동작하고 있는 커널 빌드와 맞는지 확신해야 한다.
RHEL/CentOS
현재 동작하고 있는 커널을 위한 커널 헤더와 개발 패키지는 다음처럼 인스톨할 수 있다:
$ sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
Fedora
현재 동작하고 있는 커널을 위한 커널 헤더와 개발 패키지는 다음처럼 인스톨할 수 있다:
$ sudo dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
OpenSUSE/SLES
동작하고 있는 커널의 버전을 확인하기 위해 uname
명령의 출력을 이용하라:
$ uname -r
3.16.6-2-default
이 예제에서, 버전은 3.16.6-2이고 변종이름(variant)는 default이다. 커널 헤더와 개발 패키지는 다음 명령으로 인스톨할 수 있는데, <variant>
와<version>
을 사전에 uname
명령의 출력 내용에서 알게된 버전과 변종이름으로 대체해야 한다:
$ sudo zypper install kernel-<variant>-devel=<version>
Ubuntu
현재 동작하고 있는 커널을 위한 커널 헤더와 개발 패키지는 다음처럼 인스톨할 수 있다:
$ sudo apt-get install linux-headers-$(uname -r)
2.5. Choose an Installation Method
CUDA Toolkit은 두 가지 방법으로 설치할 수 있다: 배포판-특정 패키지들(distribution-specific packages) 또는 배포판-독립 패키지(distribution-independent package). 배포판-독립 패키지는 보다 폭넓은 집합의 리눅스 배포판에 적용할 수 있다는 이점을 갖는다. 그러나 배포판의 전용(native) 패키지 관리 시스템(package management system)을 업데이트하지 못한다. 배포판-특정 패키지들은 배포판의 전용 패키지 관리 시스템과 소통한다. 가능하다면 배포판-특정 패키지들을 사용할 것을 권장한다.
NOTE: x86_64 릴리즈를 제외한 아키텍쳐에 대해서는 독립 인스톨러(standalone installers)가 제공되지 않는다. 네이티브 개발과 크로스 개발 모두를 위해, 배포판-지정 인스톨러를 이용하여 툴킷을 설치할 수 있다. 더 자세한 내용은 CUDA Cross-Platform Installation를 참조하라.
2.6. Download the NVIDIA CUDA Toolkit
NVIDIA CUDA Toolkit은 http://developer.nvidia.com/cuda-downloads에서 다운로드 받을 수 있다.
여러분이 사용하고 있는 플랫폼을 선택하고 NVIDIA CUDA Toolkit을 다운받자.
CUDA Toolkit은 CUDA 어플리케이션을 생성, 빌드, 실행시킬 때 필요한 CUDA 드라이버와 툴들을 포함한다. 뿐만 아니라 라이브러리, 헤더 파일, CUDA의 샘플 소스 코드, 기타 다른 자원들도 포함하고 있다.
Download Verification
다운로드 받은 파일과 MD5 체크섬(checksum; http://developer.nvidia.com/cuda-downloads/checksums)을 비교함으로써 다운로드 검증을 수행할 수 있다. 만약 두 체크섬 중 하나가 다르다면, 다운로드 파일이 손상된 것이기 때문에 다시 다운로드 받을 필요가 있다.
다운로드 파일의 MD5 체크섬을 계산하기 위해서, 다음을 실행하라:
$ md5sum <file>
2.7. Handle Conflicting Installation Methods
CUDA를 인스톨하기 전에, 충돌을 유발할 수 있는 이전 버전을 언인스톨해야 한다. 이 섹션의 내용은 이전 버전의 CUDA가 설치되어 있지 않은 시스템이나 인스톨 방법이 보존(RPM/Deb vs. Runfile)되는 경우에는 해당되지 않는다. 다음 챠트에서 세부사항을 보라.
Toolkit 런파일로 인스톨한 것을 언인스톨하기 위해 다음과 같이 하라:
$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
Driver 런파일로 인스톨한 것을 언인스톨하기 위해 다음과 같이 하라:
$ sudo /usr/bin/nvidia-uninstall
RPM/Deb을 이용하여 인스톨한 것을 언인스톨하기 위해 다음과 같이 하라:
$ sudo yum remove <package_name> # Redhat/CentOS
$ sudo dnf remove <package_name> # Fedora
$ sudo zypper remove <package_name> # OpenSUSE/SLES
$ sudo apt-get --purge remove <package_name>
# Ubuntu