์์ฝ
Important
GPU ๋ฅผ ์ฌ์ฉํ๋ ํ๋์ โprivilegedโ ๊ถํ์ ๋ถ์ฌํ๋ค.
1. ์ด์
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ Nvidia GPU ๋ฅผ ์ฌ์ฉํ๋ ํ๋๋ฅผ ์์ฑํ๋ฉด ์ฒ์์๋ ์ ์์ ์ผ๋ก ๋์ํ์ง๋ง, ์ผ์ ์์ ์ดํ์ ๊ธฐ๋ฅ์ด ์ ๋๋ก ๋์ํ์ง ์๋ ํ์์ด ๋ฐ์ํ๋ค. ํ๋ ๋ด๋ถ์์ nvidia-smi ๋ช
๋ น์ด๋ฅผ ์คํํ์ ๋ โFailed to initialize NVML: Unknown Errorโ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
2. ํด๊ฒฐ
์ฌ๋ฌ ๋ ํผ๋ฐ์ค๋ฅผ ์ดํด๋ณด์์ง๋ง ์ ํํ ์์ธ์ ์ดํดํ๊ฑฐ๋ ํ์
ํ์ง ๋ชปํ๋ค. ๋ค๋ง ๋์ผํ ์ฆ์์ ์ฌํํ๋ ๋ฐฉ๋ฒ์ ์์๋๋๋ฐ, ํธ์คํธ์์ 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/