์์ฝ
Important
GPU ๋ฅผ ์ฌ์ฉํ๋ ํ๋์ โprivilegedโ ๊ถํ ๋ถ์ฌํ๊ธฐ
์ด์
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ Nvidia GPU ๋ฅผ ์ฌ์ฉํ๋ ํ๋๋ฅผ ์์ฑํ๊ณ ๋ฐ๋ก๋ ์ ์์ ์ผ๋ก ํ๋๊ฐ ๋์ํ์ง๋ง ์ผ์ ์์ ์ดํ์ ๊ธฐ๋ฅ์ด ์ ๋๋ก ๋์ํ์ง ์๋ ํ์์ด ๋ฐ์ํ๋ค. ํ๋ ๋ด๋ถ์์ nvidia-smi ๋ช
๋ น์ด๋ฅผ ์คํํ์ ๋ โFailed to initialize NVML: Unknown ErrorFailed to initialize NVML: Unknown Errorโ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
ํด๊ฒฐ
์ฌ๋ฌ ๋ ํผ๋ฐ์ค๋ฅผ ์ดํด๋ด๋ ์ ํํ ์์ธ์ ์ดํดํ๊ฑฐ๋ ํ์
ํ์ง ๋ชปํ๋ค. ๋ค๋ง ๋์ผํ ์ฆ์์ ์ฌํํ๋ ๋ฐฉ๋ฒ์ ์์๋๋๋ฐ, ํธ์คํธ์์ systemctl daemon-reload ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ ์งํ์ ํ๋ ๋ด๋ถ์์ nvidia-smi ๋ฅผ ํ์ธํด๋ณด๋ฉด ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋์๋ค.
๊ฒ์ํด๋ณธ ๋ด์ฉ์ผ๋ก ๋ฉฐ์น ๊ฐ ํ ์คํธ๋ฅผ ํด๋ดค๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค.
ํ๊ฒฝ
-
kubernetes 1.25.0
-
gpu-operator 22.9.0
-
cuda 11.7
์๋ ๋๋ ๊ณ ๋ คํด๋ณธ ์ฌํญ
-
cgroup2 ๋ก ๋ณ๊ฒฝ โ ๋ฆฌ์คํฌ๋ก ์ธํ์ฌ ๋ฏธ์งํ
-
containerd ๋ฒ์ ๋ค์ด๊ทธ๋ ์ด๋ โ ์คํจ
-
runc version 1.1.2 ์ดํ๋ก ๋ฎ์ถ๊ธฐ โ ์คํจ
-
nvidia-experimental ๋ฐํ์ ์ฌ์ฉ โ ์คํจ
runtimehandler "nvidia-experimental" not supported# gpu-operator operator.runtimeClass ์ค์ runtimeClassName: nvidia-experimental -
ํฌ์ค ์ฒดํฌ๋ฅผ ํตํด ์ค๋ฅ ๋ฐ์ํ๋ฉด ํ๋ ์ญ์ ํ๊ธฐ โ ์ ์ ๋์, ๊น๋ํ ๋ฐฉ๋ฒ ๊ฐ์ง ์์์ ์ ์ฉํ์ง๋ ์์์
# ์ ์คํฌ๋ฆฝํธ๋ก ๋ค์ ์ฌํญ์ ๊ฒ์ฆํ๋ค. nvidia-smi || exit 1 -
gpu ํ๋์ privileged ๊ถํ ์ฃผ๊ธฐ โ ์ ์ ๋์!
# ํ๋ ์ค์ ์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ๋ค. securityContext: privileged: true
cuda ์ ๋ํ ์ดํด๋๊ฐ ๋ฎ์์ ์ ์์ ์ธ ํด๊ฒฐ ๋ฐฉ๋ฒ์์๋ ๋ถ๊ตฌํ๊ณ ์ ๋๋ก ์ ์ฉ์ ํ์ง ๋ชปํ์ ์๋ ์๋ค.
โprivilegedโ ๊ถํ์ ์ฃผ๋ ๊ฒ์ ์ต๋ํ ์ง์ํ๊ณ ์ถ์์ง๋ง ๋ฌ๋ฆฌ ๋ฐฉ๋ฒ์ด ์์๊ณ , ์ค์ ์ ์ ์ฉํ ์ง๊ธ 2๊ฐ์ ์ด์ ํ ์คํธ๋ฅผ ํด๋ณด์๋ ๋์ผ ์ฆ์์ ๋ฐ๊ฒฌ๋์ง ์์๋ค.
์ฐธ๊ณ
- https://github.com/NVIDIA/nvidia-docker/issues/1671
- https://stackoverflow.com/questions/72932940/failed-to-initialize-nvml-unknown-error-in-docker-after-few-hours
- https://stackoverflow.com/questions/58176096/downgrading-docker-from-19-03-2-to-18-09-9-on-centos-7
- https://kubernetes.io/docs/concepts/containers/runtime-class/