はじめに
docker compose up
を実行したところ,これまで動いていたはずの環境が以下のエラーにより動かなくなっていた.
error msg
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: nvml error: driver/library version mismatch: unknown
原因究明
まず,目に付くのがOCI runtime create failed
& nvidia-container-cli
.(ここら辺がよくエラーになるのはどうにかならないものなんですかね……?)
検索したところ,以下の記事がヒット.
読んでいくと,どうやらnvidia-smi
を確認しろとのこと.
$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.146
原因はこれのようです.
対処法
これについても検索すると以下の記事がヒット
これによると,reboot
しろとのことですが,諸事情によりdocker compose
を動かしているサーバの電源は落とせなかったので,更に読み進めると以下のコマンドを発見.
本コマンドは元の記事から拾ってきたものです.英語が読める方はそちらを参考にされた方が良いかなと思います.
- ロードされているドライバの確認
$ lsmod | grep nvidia nvidia_uvm 1511424 0 nvidia_drm 77824 1 nvidia_modeset 1302528 1 nvidia_drm nvidia 56659968 2 nvidia_uvm,nvidia_modeset drm_kms_helper 311296 1 nvidia_drm drm 622592 5 drm_kms_helper,nvidia,nvidia_drm
-
graphical target
の無効化$ systemctl isolate multi-user.target
- ドライバのアンロード
$ sudo rmmod nvidia_uvm $ sudo rmmod nvidia_drm $ sudo rmmod nvidia_modeset $ sudo rmmod nvidia
-
nvidia-smi
の実行$ nvidia-smi Thu Jan 18 05:17:56 2024 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.146.02 Driver Version: 535.146.02 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 3090 Off | 00000000:2B:00.0 Off | N/A | | 0% 44C P0 97W / 350W | 0MiB / 24576MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+
最後に
OCI runtime create failed
の根本的な原因を調査して対策すべきだと思うのですが,調べたものの全く分かりませんでした.
どなたかご存知の方がいればご教示頂けますと幸いです.
参考文献