다음과 같이 nvidia-driver가 384.111인 환경에서 docker image bsyu/tf1.3-ppc64le:v0.1를 구동했습니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ sudo ./nvidia-docker run -ti bsyu/tf1.3-ppc64le:v0.1 bash
그 속에 들어가서 nvidia-smi 명령으로 nvidia-driver가 384.111인 것을 확인합니다.
root@78d0b67e2c8d:/# nvidia-smi
Wed May 16 08:05:31 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.111 Driver Version: 384.111 |
|-------------------------------+----------------------+----------------------+
| 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 P100-SXM2... Off | 00000002:01:00.0 Off | 0 |
| N/A 35C P0 31W / 300W | 10MiB / 16276MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla P100-SXM2... Off | 00000003:01:00.0 Off | 0 |
| N/A 35C P0 30W / 300W | 10MiB / 16276MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Tesla P100-SXM2... Off | 0000000A:01:00.0 Off | 0 |
| N/A 35C P0 32W / 300W | 10MiB / 16276MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 Tesla P100-SXM2... Off | 0000000B:01:00.0 Off | 0 |
| N/A 30C P0 31W / 300W | 10MiB / 16276MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
이 docker container에 변화를 주기 위해 다음과 같이 tensorflow models를 clone 해서 넣습니다.
root@78d0b67e2c8d:/# git clone https://github.com/tensorflow/models.git
root@78d0b67e2c8d:/# cd /models/tutorials/image/cifar10
여기서 cifar10 training을 잠깐 시켜봐도 좋습니다. 도중에 중단시키고 빠져 나갑니다.
root@78d0b67e2c8d:/models/tutorials/image/cifar10# python cifar10_train.py
...
2018-05-16 08:15:25.329494: step 1520, loss = 1.97 (9342.9 examples/sec; 0.014 sec/batch)
2018-05-16 08:15:25.454485: step 1530, loss = 1.86 (10240.0 examples/sec; 0.013 sec/batch)
2018-05-16 08:15:25.580138: step 1540, loss = 2.06 (10186.0 examples/sec; 0.013 sec/batch)
2018-05-16 08:15:25.711379: step 1550, loss = 1.73 (9754.1 examples/sec; 0.013 sec/batch)
^Z
[1]+ Stopped python cifar10_train.py
root@78d0b67e2c8d:/models/tutorials/image/cifar10# exit
이제 parent OS로 나왔습니다. docker ps 명령으로 다음과 같이 78d0b67e2c8d container가 남아 있는 것을 보실 수 있습니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78d0b67e2c8d bsyu/tf1.3-ppc64le:v0.1 "bash" 11 minutes ago Exited (148) 43 seconds ago vigilant_jennings
af8e4f0af9d2 9d72ea809195 "/bin/sh -c 'go ge..." 42 minutes ago Exited (2) 42 minutes ago practical_brown
021b52c86fdf 588a60a80ab7 "/bin/sh -c 'go ge..." About an hour ago Exited (2) About an hour ago nifty_beaver
716660e1b44b bf2674b6db4a "/bin/sh -c 'go ge..." About an hour ago Exited (1) About an hour ago blissful_pasteur
7e0b933581c5 3349633cccc3 "/bin/sh -c 'apt-g..." About an hour ago Exited (100) About an hour ago unruffled_haibt
53853b98c3f0 958e9eb53afd "/bin/sh -c 'NVIDI..." About an hour ago Exited (2) About an hour ago goofy_williams
85afec3a1429 52a84e97014b "/bin/bash -c 'mak..." 3 weeks ago Exited (2) 3 weeks ago vigilant_curie
5e172a9eb6c0 3426d0bdc1ee "/bin/sh -c 'cd /p..." 3 weeks ago Exited (2) 3 weeks ago thirsty_wescoff
27725169f8c2 c9cf4b61ab78 "/bin/sh -c 'pip i..." 3 weeks ago Exited (127) 3 weeks ago
이제 nvidia driver를 390으로 올립니다.
minsky_test@minsky:~$ sudo apt-get install nvidia-390-dev nvidia-390
당장 nvidia-smi를 해보면 error가 납니다. 원래는 reboot을 해야 하는데, 그러지 않았기 때문인가 봅니다.
minsky_test@minsky:~$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
이걸 rebooting하지 않고 하기 위해서는 nvidia-docker-plugin을 죽인 뒤, 현재 load된 nvidia 관련 module들을 rmmod로 제거한 뒤 다시 nvidia-docker-plugin을 살리면 됩니다.
minsky_test@minsky:~$ ps -ef | grep 86949 | grep -v grep
root 86949 86948 0 17:03 pts/7 00:00:03 ./nvidia-docker-plugin
minsky_test@minsky:~$ sudo kill -9 86949
minsky_test@minsky:~$ sudo lsmod | grep nvidia
nvidia_drm 59673 0
nvidia_modeset 1173401 1 nvidia_drm
nvidia_uvm 869865 4
nvidia 16625272 779 nvidia_modeset,nvidia_uvm
drm_kms_helper 182400 2 ast,nvidia_drm
drm 453521 5 ast,ttm,drm_kms_helper,nvidia_drm
minsky_test@minsky:~$ sudo rmmod nvidia_drm
minsky_test@minsky:~$ sudo rmmod nvidia_uvm
minsky_test@minsky:~$ sudo rmmod nvidia_modeset
minsky_test@minsky:~$ sudo rmmod nvidia
nvidia 관련 모듈이 다 없어진 것을 아래와 같이 확인합니다.
minsky_test@minsky:~$ sudo lsmod | grep nvidia
minsky_test@minsky:~$
이제 다시 nvidia-docker-plugin을 살립니다. 그러면 nvidia 관련 module들이 다시 load 됩니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ sudo ./nvidia-docker-plugin &
이제 nvidia-smi로 보면 driver 버전이 390.31로 올라온 것을 볼 수 있습니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ nvidia-smi
Wed May 16 17:32:17 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.31 Driver Version: 390.31 |
|-------------------------------+----------------------+----------------------+
| 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 P100-SXM2... Off | 00000002:01:00.0 Off | 0 |
| N/A 37C P0 31W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla P100-SXM2... Off | 00000003:01:00.0 Off | 0 |
| N/A 36C P0 30W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Tesla P100-SXM2... Off | 0000000A:01:00.0 Off | 0 |
| N/A 36C P0 32W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 Tesla P100-SXM2... Off | 0000000B:01:00.0 Off | 0 |
| N/A 31C P0 31W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
이제 아까 exit했던 bsyu/tf1.3-ppc64le:v0.1의 container인 78d0b67e2c8d에 다시 attach 해보겠습니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ sudo ./nvidia-docker start 78d0b67e2c8d
78d0b67e2c8d
minsky_test@minsky:~/files/nvidia-docker/bin$ sudo ./nvidia-docker attach 78d0b67e2c8d
root@78d0b67e2c8d:/#
이 속에서 nvidia-smi 해봐도 다음과 같은 error만 납니다.
root@78d0b67e2c8d:/# nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
이렇게 예전 버전의 384 driver를 가지고 구동된 container는 다시 제대로 작동시킬 방법이 없습니다. 새로 다시 시작해야 하는데, 그러자면 기존에 변경시켜둔 file 내용들이 날라갑니다. 그렇게 변경시켜둔 file들을 보존하려면 docker commit을 하시면 됩니다. 가령 아까 위에서 clone 받아둔 /models의 내용이 그대로 보존될 수 있습니다.
먼저 parent OS에서 다음과 같이 새로운 이름의 image로 해당 container id를 commit 합니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ ./nvidia-docker commit 78d0b67e2c8d bsyu/tf1.3-ppc64le:v0.2
sha256:4e5cf1b9f9672a41d2a71737f32a0d0f2a042d9162ab351433d16a828946d4f4
이제 새로 만들어진 bsyu/tf1.3-ppc64le:v0.2 image를 새로 start 합니다.
minsky_test@minsky:~/files/nvidia-docker/bin$ ./nvidia-docker run -ti bsyu/tf1.3-ppc64le:v0.2 bash
이제 nvidia-smi를 해보시면 새로운 driver version으로 잘 올라오는 것을 보실 수 있습니다.
root@53f8f0993f34:/# nvidia-smi
Wed May 16 08:39:33 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.31 Driver Version: 390.31 |
|-------------------------------+----------------------+----------------------+
| 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 P100-SXM2... Off | 00000002:01:00.0 Off | 0 |
| N/A 34C P0 30W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla P100-SXM2... Off | 00000003:01:00.0 Off | 0 |
| N/A 34C P0 30W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Tesla P100-SXM2... Off | 0000000A:01:00.0 Off | 0 |
| N/A 33C P0 31W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 Tesla P100-SXM2... Off | 0000000B:01:00.0 Off | 0 |
| N/A 29C P0 31W / 300W | 10MiB / 16280MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
물론 /models directory도 그대로 잘 보존되어 있습니다.
root@53f8f0993f34:/# cd /models/tutorials/image/cifar10
root@53f8f0993f34:/models/tutorials/image/cifar10# ls
BUILD __init__.py cifar10.py cifar10_input.py cifar10_multi_gpu_train.py
README.md __pycache__ cifar10_eval.py cifar10_input_test.py cifar10_train.py
Hw 엔지니어를 위한 Deep Learning: Nvidia-Driver 올린 뒤 Container 속에서의 "Driver/Library Version Mismatch" Error >>>>> Download Now
답글삭제>>>>> Download Full
Hw 엔지니어를 위한 Deep Learning: Nvidia-Driver 올린 뒤 Container 속에서의 "Driver/Library Version Mismatch" Error >>>>> Download LINK
>>>>> Download Now
Hw 엔지니어를 위한 Deep Learning: Nvidia-Driver 올린 뒤 Container 속에서의 "Driver/Library Version Mismatch" Error >>>>> Download Full
>>>>> Download LINK