Skip to Content
Infra & DevOpsTensorFlow 1.11 환경의 CUDA 9.0 설치 기록
☁️ Infra & DevOps2018년 10월 22일

TensorFlow 1.11 환경의 CUDA 9.0 설치 기록

#cuda#gpu#nvidia#tensorflow#deep-learning#flamingo
CentOS의 TensorFlow GPU 환경 준비2 / 4
2018년 CentOS에서 CUDA 9.0을 설치하며 확인했던 드라이버·TensorFlow 버전과 환경 변수 설정을 정리합니다.

2018년에 TensorFlow GPU 환경을 준비하며 남긴 CUDA 설치 기록입니다. 당시 기준은 TensorFlow 1.11.0과 CUDA 9.0이었습니다. 현재 버전의 설치 가이드와 섞지 않도록 당시 조합과 확인 명령을 중심으로 정리했습니다.

프레임워크와 드라이버 버전

TensorFlow 공식 빌드 표에서 1.11.0의 GPU 구성은 CUDA 9와 cuDNN 7을 사용합니다. CUDA Toolkit을 최신 버전으로 설치한다고 이 조합이 자동으로 맞는 것은 아닙니다.

CUDA와 드라이버도 별도로 확인해야 합니다. 당시 참고한 표에서 CUDA 9.0의 Linux 드라이버 요구 버전은 384.81 이상이었습니다. 이 값은 CUDA 9.0의 조건이며, 이후 모든 TensorFlow 버전의 최소 드라이버를 뜻하지 않습니다.

Runfile 설치와 커널 소스 경로

원래 기록에서는 다음 설치 파일을 사용했습니다.

text
cuda_9.0.176_384.81_linux.run

실행 중인 커널을 확인하고 커널 소스 경로를 넘기는 형태였습니다.

bash
uname -r sh ./cuda_9.0.176_384.81_linux.run --kernel-source-path="/usr/src/kernels/$(uname -r)"

여기서 --kernel-source-path는 NVIDIA 커널 모듈을 만드는 드라이버 설치 부분의 옵션입니다. CUDA Toolkit 파일을 설치하기 위해 항상 커널 모듈을 빌드해야 한다는 뜻은 아닙니다.

드라이버를 이미 설치했다면 설치 화면에서 드라이버를 다시 설치할지와 Toolkit을 설치할지를 구분해야 합니다. 당시에는 DKMS와 커널 소스도 확인했지만, 필요한 패키지는 드라이버 설치 방식과 OS 구성에 따라 달라집니다.

환경 변수 설정

다음은 CUDA 9.0 경로를 명시한 예시입니다. /usr/local/cuda 심볼릭 링크가 다른 버전을 가리키는 상황과 구분하기 위한 설정입니다.

bash
export CUDA_HOME=/usr/local/cuda-9.0 export PATH="$CUDA_HOME/bin:$PATH" export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

기존 라이브러리 경로가 없을 때 빈 항목이 생기지 않도록 작성했습니다. CUPTI 경로는 프로파일링 관련 라이브러리를 참조할 때 사용하는 부분입니다.

셸에서 설정한 환경 변수가 서비스나 Notebook 프로세스에도 전달되는지 확인해야 합니다. 로그인 셸에서 보이는 경로와 이미 실행 중인 프로세스의 환경은 다를 수 있습니다.

설치 단계별 확인

bash
modinfo nvidia | grep '^version' cat /usr/local/cuda-9.0/version.txt nvcc --version

이 명령들은 드라이버 모듈이나 Toolkit의 버전을 확인합니다. nvcc가 실행된다고 TensorFlow의 GPU 연산까지 확인한 것은 아닙니다. cuDNN과 프레임워크를 설치한 뒤 실제 연산에 사용한 장치도 확인해야 합니다.

다음 글에서는 cuDNN 파일과 라이브러리 경로를 정리합니다.

참고 자료

Last updated on