IBM AC922 서버에서 최신(2020/03 기준) nvidia-container-toolkit 을 구성하는 방법입니다. (예전 이름 nvidia-docker2)
이미 2019/04에 포스팅된 아래 글을 보시면, PowerPC 에서도 nvidia-docker2를 활용할 수 있도록 nvidia-container-runtime 을 구성하는 방법을 소개하고 있습니다.
** ppc64le Redhat 7 환경에서의 nvidia-docker2 대신 nvidia-container-runtime 사용
http://hwengineer.blogspot.com/2019/04/ppc64le-redhat-7-nvidia-docker2-nvidia.html
근래에 위 포스트 대로 실행해보니, nvidia-docker2가 deprecated 되어 구성 방식도 조금 바뀐것 같습니다. 위 포스팅 방식대로 하면 에러가 발생하거나, docker run 시에 --runtime=nvidia 로 설정해도 적용되지 않는 경우가 있어서 아래 다시 최신 적용 방법을 기록해둡니다.
기본 내용은 결국 아래 Github 을 따르시면 됩니다.
[root@p639-kvm1 ~]# distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
[root@p639-kvm1 ~]# curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
[libnvidia-container]
name=libnvidia-container
baseurl=https://nvidia.github.io/libnvidia-container/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
[nvidia-container-runtime]
name=nvidia-container-runtime
baseurl=https://nvidia.github.io/nvidia-container-runtime/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/nvidia-container-runtime/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
[nvidia-docker]
name=nvidia-docker
baseurl=https://nvidia.github.io/nvidia-docker/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/nvidia-docker/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
아래 경로에 가보면, nvidia-docker.repo 이 위 내용 대로 생성된 것을 확인하실 수 있습니다. 해당 파일을 열어서, repo_gpgcheck=1 을 0 으로 변경해줍니다.
[root@p639-kvm1 ~]# vi /etc/yum.repos.d/nvidia-docker.repo
(여기서 변경) repo_gpgcheck=0
[root@p639-kvm1 ~]# yum repolist
Loaded plugins: nvidia, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
#### NVIDIA ####
repo id repo name status
cuda-10-1-local-10.1.243-418.87.00 cuda-10-1-local-10.1.243-418.87.00 101
libnvidia-container/ppc64le libnvidia-container 15
local-rhn-server-epel Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server EPEL RP 13,831
local-rhn-server-extras Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Extras 127
local-rhn-server-iso-media Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server ISO RPM 3,751
local-rhn-server-optional Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Optiona 3,786
local-rhn-server-os Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Base RP 3,775
local-rhn-server-rhscl Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server RHSCL R 2,091
local-rhn-server-supplementary Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Supplem 13
nvidia-container-runtime/ppc64le nvidia-container-runtime 6
nvidia-docker/ppc64le nvidia-docker 1
powerai-epel Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server EPEL RP 13,726
powerai-extras Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Extras 127
powerai-optional Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Optiona 3,786
powerai-os Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server RPMs 3,775
powerai-rhscl Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server RHSCL R 2,091
powerai-supplementary Poughkeepsie Client Center Local RHN - RHEL 7Server_alt ppc64le Server Supplem 13
repolist: 51,015
nvidia-docker, nvidia-container-runtime 이 올라왔는지 확인합니다.
Github 에서는 nvidia-container-toolkit 혹은 nvidia-container-hook 으로 설치하면 된다고 하는데, 해당 패키지로는 설치가 되질 않습니다. 따라서, 아래의 명령어로 해당 패키지들을 설치해줍니다.
[root@p639-kvm1 ~]# yum install -y libnvidia-container-devel nvidia-container-runtime
[root@p639-kvm1 ~]# systemctl restart docker
명령어도 예전 옵션을 사용해야 합니다. 새로운 nvidia-container-toolkit 에서는 --gpus 옵션을 사용하지만, 여기서는 이전처럼 -e를 사용합니다. nvidia-docker2 에서 사용하던 --runtime 도 적용되질 않습니다.
[root@p639-kvm1 ~]# docker run -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda-ppc64le:10.1-base nvidia-smi
Mon Mar 23 07:27:08 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.87.00 Driver Version: 418.87.00 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla V100-SXM2... On | 00000001:00:01.0 Off | 0 |
| N/A 34C P0 39W / 300W | 0MiB / 32480MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
컨테이너 실행 시, NVIDIA_VISIBLE_DEVICES=none 으로 GPU를 할당하지 않고 실행해봅니다.
[root@p639-kvm1 ~]# docker run -e NVIDIA_VISIBLE_DEVICES=none nvidia/cuda-ppc64le:10.1-base nvidia-smi
No devices were found
댓글 없음:
댓글 쓰기