검색결과 리스트
글
RedHat 에 Tensorflow GPU 모드로 설치하기
이번 포스팅에서는 RedHat 에 Tensorflow 를 GPU 모드로 설치해 보려고 합니다.
방법은 VirtualEnv 를 사용할 것입니다. 그리고 Tensorflow 는 pip 를 통해서 설치합니다.
현재 최신 Tensorflow 는 1.3.0 입니다.
그리고 제가 사용하는 그래픽카드는 Tesla K80 입니다.
CUDA 설치
1. gcc 설치
sudo yum groupinstall 'Development Tools'
2. Kernel header 와 development package 설치
sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
3. Nouveau driver 종료
설치를 위해서는 현재 실행중인 Nouveau driver 를 종료시켜야 합니다.
Nouveau driver 의 실행유무는 아래 명령어를 통해서 확인 가능합니다.
lsmod | grep nouveau
어떤 항목이라도 출력되는게 있다면, Nouveau driver 가 로드되었다는 뜻입니다.
실행을 막기 위해서 아래 절차를 실행합니다.
/etc/modprobe.d/blacklist-nouveau.conf 파일을 아래 내용으로 만들어 넣습니다.
blacklist nouveau
options nouveau modeset=0
그 뒤에 아래 명령어를 통해서, kernel initramfs 를 재생성 합니다.
sudo dracut --force
runlevel
이후 다시 아래 명령을 통해서 Nouveau driver 가 로드되지 않았음을 확인합니다.
lsmod | grep nouveau
아무것도 출력되지 않았으면, 재대로 된 것입니다.
5. NVIDIA CUDA Toolkit 설치 (Runfile 설치 방식)
포스팅을 하는 현재 기준으로, Tensorflow 는 NVIDIA CUDA Toolkit 8.0 과 cuDNN v6 을 지원합니다. 하지만 Nvidia 에 최신 CUDA Toolkit 은 9.0 입니다. 만약 9.0을 설치한다면 Tensorflow 가 정상적으로 동작하지 않을 수 있습니다. 그러므로 주의해서 반드시 8.0 을 설치하도록 합니다.
아래 주소에서 다운로드를 받습니다.
https://developer.nvidia.com/cuda-80-ga2-download-archive
Patch 2 도 반드시 함께 다운로드 받습니다.
https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda_8.0.61.2_linux-run
그리고 toolkit 과 Patch 2 를 각각을 아래와 같은 형식으로 설치합니다.
$ sudo sh cuda_<version>_linux.run
sudo sh NVIDIA-Linux-x86_64-375.51.run
그리고나서 CUDA Toolkit 을 다시 설치합니다. 이때 NVIDIA Accelerated Graphics Driver 를 설치는 skip 합니다.
8. Device Node 검증
/dev/nvidia* 에 파일들이 있는지 확인합니다.
그 어떤 파일도 없다면 아래 스크립트를 만들고 실행하여, 생성합니다.
#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi
9. Driver 설치 확인
간혹 CUDA 8.0 에 포함된 Nvidia 드라이버가 현재 설치된 그래픽카드를 지원하지 않는 경우가 있다.
아래 명령어를 통해서 그래픽 카드 이름이 제대로 표시되는지 확인한다.
nvidia-smi
만약 제대로 표시되지 않는다면, Nvidia 홈페이지에서 그래픽카드 드라이버를 새로 받아서 드라이버만 재설치하면 된다.
설치 한 뒤에, 재부팅하고 아래 명령어를 실행해 준다.
modprobe --force-modversion nvidia-uvm
10. 환경변수 설정
설치가 완료되고나면, CUDA 와 Libary 경로를 잡아줍니다.
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
64비트일 경우,
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
32비트일 경우,
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
cuDNN 설치
1. cuDNN 설치
먼저 아래 주소에서 cuDNN for Linux 를 다운로드 합니다.
https://developer.nvidia.com/rdp/cudnn-download
주의할것은 이후에 설치할 Tensorflow 가 cuDNN v6.0 밖에 지원하지 않으므로, cuDNN v6.0 을 받아야 합니다.
글을 작성하는 현재로서는 그렇습니다.(Tensorflow 1.3.0)
이후 아래처럼 압축을 푼 후, 파일들을 CUDA 폴더에 복사해 줍니다.
tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
그리고나서 헤더파일에 읽기 권한을 줍니다.
sudo chmod a+r /usr/local/cuda/include/cudnn.h
아래처럼 CUDA_HOME 을 추가시켜 줍니다.
export CUDA_HOME=/usr/local/cuda
Python 환경 설정
1. virtualenv 설치
경험상 virtualenv 에 설치하는게 가장 나은것 같습니다.
먼저 python-pip 를 설치하려면 EPEL-Repository 가 추가되어 있어야 합니다.
추가는 아래처럼 합니다.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
이후 virtualenv 는 아래처럼 설치 합니다.
sudo yum install python-pip python-devel.x86_64 python-virtualenv
sudo pip install --upgrade pip
sudo pip install --upgrade setuptools
sudo pip install --upgrade virtualenv
virtualenv --system-site-packages ~/tensorflow
source ~/tensorflow/bin/activate
3. Tensorflow 설치
pip install --upgrade tensorflow-gpu
설치 최종확인
아래 샘플코드를 돌려서 Tensorflow 가 제대로 돌아가는지 확인합니다.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/
source ~/.bash_profile
추가 - 버전에 따른 설치
CUDA Toolkit 은 9.0
cuDNN 은 7.0
버전별로 해당 의존 라이브러리 버전만 다릅니다 :)
이를 참고하여 버전만 맞게 설치하시면 됩니다.
'딥러닝(DeepLearning)' 카테고리의 다른 글
TensorFlow 를 이용한 CNN (1) | 2017.08.11 |
---|---|
CNN 을 이용하여, 얼굴을 분류해보자 (31) | 2017.06.30 |
Perceptual Losses for Real-Time Style Transfer (0) | 2017.06.09 |
[CentOS 7] TensforFlow 설치 (0) | 2017.06.09 |
TensorFlow 를 Windows 에서 빌드하기 (0) | 2017.02.14 |
RECENT COMMENT