[VM] Azure ND 시리즈에서 엔비디아 GPU 드라이버 세팅방법 (CentOS 7.3)

VM
작성자
Roronoa
작성일
2018-01-15 15:18
조회
17080
기계 학습, 딥러닝, 분자 모델링, 게놈분석, 금융 데이터 분석등 GPU의 사용분야는 점점 넓어지는 추세이며 아주 빠르게 GPU 아키텍쳐 또한 변화 되고 있는 추세이다.

그러나 클라우드에서 GPU를 쓰지 않고 대부분 하드웨어를 사서 테스트하는 많은 유저들이 있는 현실이며 클라우드에서  GPU를 쓰고 쓰지 않을때는 꺼놓거나  Automation 으로 자동으로 꺼놓고 쓸때만 켜놓으면 비용적인면에서 훨씬 싸게 사용할수 있다는 장점이 전혀 알려지지 않다고 생각된다.

물론 초기 진입장벽이 쉽지는 않지만 생각보다 어렵지도 않다고 생각한다. 테스트 용도라면 무조건 적으로 레이턴시는 느리겠지만 미주 지역에 서버를 생성해야한다. AWS의 경우 미주지역과 한국 지역에 인스턴스 차이가 비용이 30프로 까지 비싸기 때문에 굳이 한국 지역에 할필요는 없다.  Azure의 경우 GPU 인스턴스 중에 가장 최신인 ND 씨리즈와 NV 씨리즈의 경우 ND는 West US2에서 NV는 Japan East 에서 사용이 가능하다. 또한 마켓플레이스를 사용하면 이미 다 깔려져있는 이미지서버를 한방에 이용할 수도 있다. (설정도 귀찮다면)

그러나 수동으로 설정해야한다면  현재 CentOS 커널 문제로 인하여 Nvidia 드라이버가 ND 씨리즈에서 설정되지 않는 버그가 있다. 그러나 삽질을 하면 안되는것이 없기에 이 블로그를 공유해본다.

 

현재 밑에 링크에 있는 공식문서대로 하면 드라이버가 설정이 되지 않는다.

https://docs.microsoft.com/en-us/azure/virtual-machines/linux/n-series-driver-setup

문제점은 현재 693 Kernel에서 Nvidia 드라이버가 설정이 되지 않는 이슈가 있으며 514 kernel을 이용하기 위한 방법이다. Sudo yum update를 하면 커널이 최신버전으로 업데이트 되므로 절대 해서는 안된다 혹시라도 했다면 VM을 지우고 다시 해야한다.

그러므로 이방법을 선택한다.

1. ND 씨리즈 VM을 마켓플레이스에서 CentOS 7.3을 디플로이 한다.

2. SSH로 접속후 아무것도 업데이트 하지 않고 이대로 따라 한다.

3. Root 권한을 가져온다 Sudo su 를 입력하고 비번을 입력한다. (Root 계정을 절대 사용하지 않는다)

4. 먼저 Nvidia 드라이버와 호환되지 않는 Nouveau 커널 드라이버를 사용하지 않을것이므로 명령어 “cd /etc/modprobe.d” 으로 간다

5. 명령어 “sudo nano nouveau.conf” 를 입력한후에

blacklist nouveau

blacklist lbm-nouveau

를 입력하고 Ctrl+o 로 저장 후 Ctrl +X로 나온다.

6. 디폴트 드라이버를 설정하기 위해 명령어 “sudo nano /etc/default/grub ”를 입력후 GRUB_CMDLINE_LINUX 밑에 칸에 rd.driver.blacklist=nouveau nouveau.modeset=0 를 입력하고 를 입력하고 Ctrl+o 로 저장 후 Ctrl +X로 나온다.

7. 리빌트 시킨다 (약2분 걸린다 멈췄다고 누르지 말고 약2분 걸린므로 기다린다. )

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)

8. Root 디렉토리로 간다 cd.. 자 이제 올드버전을 wget으로 가져온다 14초 걸린다.. 다운로드 다운로드

wget http://download.microsoft.com/download/6/8/F/68FE11B8-FAA4-4F8D-8C7D-74DA7F2CFC8C/lis-rpms-4.2.3-1.tar.gz

9. 압축풀고 실행

tar -zxvf lis-rpms-4.2.3-1.tar.gz

cd LISISO/

sudo ./install.sh

sudo reboot

리부트 된후에 바로 접속할려고 하지 말고 담배한대 피고온다.

10. GUI Component를 설치한다

sudo yum groupinstall graphical-server-environment

11. 자 가장중요한 예전커널을 깐다.

sudo rpm -ihv ftp://ftp.riken.jp/Linux/cern/centos/7/updates/x86_64/Packages/kernel-devel-3.10.0-514.26.2.el7.x86_64.rpm

sudo rpm -ihv ftp://ftp.riken.jp/Linux/cern/centos/7/updates/x86_64/Packages/kernel-headers-3.10.0-514.26.2.el7.x86_64.rpm

12.기본적인 Developer 툴을 깐다

sudo yum groupinstall "Development Tools"

13.자 이제 Nvidia Driver를 깐다.

wget -O NVIDIA-Linux-x86_64-384.73-grid.run https://go.microsoft.com/fwlink/?linkid=849941

sudo sh NVIDIA-Linux-x86_64-384.73-grid.run

14. 밑에 명령어로

lspci | grep -i NVIDIA

nvidia-smi

15. 확인한다 할렐루야 ! 밑에 그림처럼 출력되면 드라이버를 잘 설치한것이다.

002 compute-multi-vm