GPU Died. Training Didn't: Self-Healing Training at Scale โ Crusoe
ํ ์ค ํต์ฌ
๋๊ท๋ชจ GPU ํ์ต์์๋ GPU ์ฅ์ ๊ฐ ํผํ ์ ์์ผ๋ฏ๋ก, Slurm์ ๊ณ ์ฑ๋ฅ ์ค์ผ์ค๋ง๊ณผ Kubernetes์ ๋ณต์๋ ฅยท๊ด์ธก์ฑ์ ๊ฒฐํฉํด ์คํจ๋ฅผ ์๋ ๋ณต๊ตฌํ๋ ์ธํ๋ผ๊ฐ ํ์ํ๋ค๋ ์ ์ ๋ณด์ฌ์ฃผ๋ ์์์ด๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์๊ฐ Crusoe์์ ๊ตฌ์ถํ ์ธํ๋ผ๊ฐ ์น๋ช ์ ํ๋์จ์ด ์ค๋ฅ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ์ค๋ช ํ๋ฉฐ, ์์ฒ ๊ฐ GPU ๊ท๋ชจ์ ํ์ต์์๋ ์๋ ๋ณต๊ตฌ๊ฐ ์ง์ ๊ฐ๋ฅํ์ง ์๋ค๋ ๋ฌธ์ ์์์ ์ ์ํ๋ค.
-
0:12
GPU ์ฅ์ ๋ ํผํ ์ ์๋ค ๋๊ท๋ชจ ํ์ต ํ๊ฒฝ์์๋ GPU ์ฅ์ ๊ฐ ํ์ฐ์ ์ด๋ฏ๋ก ์๋ํ๋ ๋ณต๊ตฌ๊ฐ ํ์ํ๋ฉฐ, Slurm๊ณผ Kubernetes๋ฅผ ํจ๊ป ์จ์ ํ์ต ์์ง๋์ด์ ํ๋ซํผ ํ ๋ชจ๋๊ฐ ์ฐ๊ธฐ ์ฌ์ด ๋ณต์์ฑ ๋์ ํ๋ซํผ์ ๋ง๋ ๋ค๋ ์ ์ ๊ฐ์กฐํ๋ค.
-
0:56
Crusoe Cloud๋ ๋ฌด์์ธ๊ฐ Crusoe Cloud๋ ์ปดํจํธยท์คํ ๋ฆฌ์งยท๋คํธ์ํน๊ณผ Nvidia, AMD ์ต์ GPU๋ฅผ ์ ๊ณตํ๋ IaaS์ด๋ฉฐ, ๊ทธ ์์ CMK์ managed slurm, ๊ทธ๋ฆฌ๊ณ ์ฅ์ GPU ๋ ธ๋๋ฅผ ์๋ ๊ฐ์งยท๊ต์ฒดํ๋ autoclusters ๊ฐ์ ์ด์ ๋๊ตฌ๋ฅผ ์น์ด ๋๊ท๋ชจ GPU ํ๋ฆฟ์ ๊ด๋ฆฌํ๋ค.
-
1:56
์ด ์ํคํ ์ฒ๋ฅผ ์ ํํ ์ด์ ์ ํต์ ์ธ Slurm์ ์ฅ์ ๊ณผ ํ๊ณ๋ฅผ ํจ๊ป ์ดํดํด์ผ ํ์ฌ์ ์ํคํ ์ฒ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ค๋ช ๋๋ฉฐ, ํนํ ํ๋ AI ํ์ต์ ๋์ ์๊ตฌ์ ์ฅ์ ๋์์๋ ์ถ๊ฐ์ ์ธ ๋ณต์๋ ฅ ๊ณ์ธต์ด ํ์ํ๋ค.
-
2:13
Slurm์ด ๊ฐํ ๋ถ๋ถ Slurm์ HPC์์ ์ถ๋ฐํด ๋ฉํฐ ๋ ธ๋ ํ์ต์ ํ์ํ ํ์ดํธํ ์ง๋จ ํต์ , gang scheduling, topology awareness, prologue/epilog ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฏ๋ก ์ฐ๊ตฌ์๋ค์๊ฒ ์ต์ํ ๋ฐฉ์์ผ๋ก ๊ณ ์ฑ๋ฅ ํ์ต ์์ ์ ์ ์ง์ํ๋ค.
-
3:31
Slurm์ ํ๊ณ ํ๋ AI ์ํฌ๋ก๋๋ ํ์ต๋ง์ด ์๋๋ผ post-training, eval, inference๊น์ง ํฌํจํด ํจ์ฌ ๋์ ์ด์ง๋ง, Slurm์ ํํฐ์ ์ค์ฌ์ผ๋ก ๋น๊ต์ ์ ์ ์ด์ด์ GPU ์์ ํ์ฉ๊ณผ ์ด์ ์ ์ฐ์ฑ์์ ํ๊ณ๊ฐ ๋๋ฌ๋๋ค.
-
4:21
๋ ธ๋ ์ํ ๊ฒ์ฌ GPU ์ฅ์ ๋ ธ๋๋ฅผ ๊ฐ์งํ๊ณ drainํ๋ฉฐ ์์ ์ ์ฌํ์ํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฅํ์ง๋ง, ์ด๋ฅผ ์ง์ ์ด์ํ๋ ค๋ฉด ์๋ ์ฒ๋ฆฌ๋ ๋ณ๋ ์๋ํยท์คํฌ๋ฆฝํ ์ด ํ์ํด ์ด์ ๋ถ๋ด์ด ์ปค์ง๋ค.
-
5:04
๊ด์ธก์ฑ์ ๊ณต๋ฐฑ Slurm์ ์์ ์คํจ ์์ฒด๋ ์ ์ ์์ง๋ง ๋คํธ์ํฌ ๋ฌธ์ ๋ ์ฑ๋ฅ ์ ํ์ฒ๋ผ ์ ์คํจํ๋์ง๊น์ง ์ถฉ๋ถํ ์ค๋ช ํ์ง ๋ชปํ๋ฏ๋ก, ์ฅ์ ์์ธ ๋ถ์๊ณผ ์ด์ ๊ฐ์์ฑ์ ์ํด Kubernetes ์์ค์ ๊ด์ธก์ฑ์ด ์ค์ํด์ง๋ค.
-
5:51
์ Kubernetes์ธ๊ฐ Kubernetes๋ ํด๋ผ์ฐ๋์ ํ์ค ์ด์ ์ฒด๊ณ์ฒ๋ผ ๋๋ฆฌ ์ฐ์ด๊ณ ์ํ๊ณ๊ฐ ์ฑ์ํด ์์ผ๋ฉฐ, ๋ด์ฅ๋ self-healing, ๋ก๋๋ฐธ๋ฐ์ฑ, ์คํ ์ค์ผ์ผ๋ง๊ณผ ํจ๊ป ๊ด์ธก์ฑยท๋คํธ์ํนยท๋ณด์ ํ์ฅ์ฑ์ ์ ๊ณตํด ๋ณต์๋ ฅ ์๋ ์๋น์ค ์ด์์ ์ ๋ฆฌํ๋ค.
-
6:45
๋ ๊ฐ์ ์คํ, ๋ ๋ฐฐ์ ๋ถ๋ด Inference๋ Kubernetes, training์ Slurm์ฒ๋ผ ํ์ด ์ต์ํ ๋๊ตฌ๋ฅผ ๋ฐ๋ก ์ฐ๋ฉด ๊ฒฐ๊ตญ ์ธํ๋ผ ์คํ์ด ๋ถ๋ฆฌ๋์ด ์ด์ ๋ถ๋ด๊ณผ ๋น์ฉ์ด ๋์ด๋๋ฏ๋ก, ๋์ ํ๋์ ๊ตฌ์กฐ๋ก ๋ฌถ๋ ์ ๊ทผ์ด ํ์ํ๋ค.
-
7:35
Kubernetes ์์ managed Slurm Crusoe๋ Slurm์ Kubernetes ์์ ์ฌ๋ ค ํ๋์ ๋ช ๋ น์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๊ณ , ์ฌ์ฉ์ยทํํฐ์ ยท์ค์ ยท์คํ ๋ฆฌ์ง๋ฅผ ํจ๊ป ๊ด๋ฆฌํ๊ฒ ํ์ฌ Slurm ์ฌ์ฉ์๋ ๊ธฐ์กด์ฒ๋ผ ์ฐ๊ณ ํ๋ซํผ ํ์ ๊ธฐ์กด ์ธํ๋ผ ์์์ ์ด์ํ๋๋ก ๋ง๋ ๋ค.
-
8:09
์ฐ๊ตฌ์์ ํ๋ซํผ ํ์ด ๋ณด๋ ๋ชจ์ต ์ฐ๊ตฌ์์๊ฒ๋ ํ๋ฒํ Slurm ํด๋ฌ์คํฐ์ฒ๋ผ ๋ณด์ด์ง๋ง, ํ๋ซํผ ํ์๊ฒ๋ ๊ธฐ์กด ์๋น์ค์ ๋ถ๋ ํ๋์ ์๋น์ค์ผ ๋ฟ์ด๋ผ ์๋ก์ด ๊ด์ธก ๋๊ตฌ๋ ์จ์ฝ ์ฒด๊ณ๋ฅผ ๋ฐ๋ก ๋ง๋ค ํ์๊ฐ ์๊ณ , ๊ฐ์ ์ธํ๋ผ์์ ์ผ๊ด๋๊ฒ ์ด์ํ ์ ์๋ค.
-
8:58
ํ์ต๊ณผ ์ถ๋ก ์ฌ์ด์ GPU ๊ณต์ ๋ชจ๋ GPU๊ฐ ํ๋์ ํด๋ฌ์คํฐ์ ์์ผ๋ฉด ์์๊ฐ ๋์ ์์ ์ inference์ ์์์ ๋ ์ฃผ๊ฑฐ๋, ์ ํด ์์ ์ training์ ํฌ๊ฒ ๋๋ฆฌ๋ ์์ผ๋ก ์์์ ์ ์ฐํ๊ฒ ์ฌ๋ฐฐ์นํ ์ ์์ด ํ๋์จ์ด ํ์ฉ๋๊ฐ ๋์์ง๋ค.
-
9:43
์๋ ๋ณต๊ตฌ: AutoClusters managed slurm์ autoclusters์ ๊ฒฐํฉํด ํ๋์จ์ด ์ค๋ฅ๋ฅผ ์๋ ๋ณต๊ตฌํ ์ ์์ผ๋ฉฐ, ์น๋ช ์ ์ฅ์ ๊ฐ ๊ฐ์ง๋๋ฉด ๋ ธ๋๋ฅผ ๊ต์ฒดํ๋ ์ ์ฒด ์ ์ฐจ๊ฐ ๋ณ๋ ์๋ ๊ฐ์ ์์ด ์งํ๋๋ค.
-
10:03
XID 79 ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด XID 79 ๊ฐ์ ์น๋ช ์ GPU ์ค๋ฅ๊ฐ ๋๋ฉด ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ๋ณด๋ด๋ ์กฐ์น๋ ์๊ตฌํ์ง ์๊ณ , Slurm์ด ๋ ธ๋๋ฅผ down ์ฒ๋ฆฌํ๊ณ ์์ ์ ์ฌํ์ํ ๋ค Kubernetes๊ฐ cordonยทdrainยท๊ต์ฒด๋ฅผ ์ํํ๋ฉฐ ์ฒดํฌํฌ์ธํธ ์ ์ฅ ์๊ฐ์ ํ๋ณดํ ๋ค ์ ๋ ธ๋๋ก ์ฌ๊ฐํ๋ค.
-
11:27
ํ์ต ๋์ค GPU๊ฐ ์คํจํ๋ ๋ฐ๋ชจ PyTorch ํ์ต ์์ ์ค XID79๋ฅผ ์ธ์์ ์ผ๋ก ๋ฐ์์ํค๋ฉด GPU ์ฌ์ฉ๋ฅ ์ด ์ฆ์ ๋จ์ด์ง๊ณ ๋ ธ๋ ๊ต์ฒด๊ฐ ์์๋๋ฉฐ, ์ฅ์ ๊ฐ์ง๋ถํฐ ๊ฑด๊ฐํ ๋ ธ๋ ๋ณต๊ท๊น์ง ์ฝ 5๋ถ, ์ ์ฒด์ ์ผ๋ก๋ 15๋ถ ๋ฏธ๋ง์ ํ์ต์ด ๋ค์ ์ด์ด์ง๋ค.
-
12:56
15๋ถ ์์ ํ์ต ์ฌ๊ฐ ์๋ ๋ณต๊ตฌ ํ GPU ์ฌ์ฉ๋ฅ ์ด ์ ์์ผ๋ก ๋์์ค๊ณ ์ ์ฒด ๋ค์ดํ์์ด 15๋ถ ๋ฏธ๋ง์ผ๋ก ์ ์ง๋์ด, ์ผ๊ฐ์ ์์ง๋์ด๊ฐ ์ง์ ๋ค์ด๊ฐ ์ ์๊ฐ์ฉ ๋๋ฒ๊น ํ๋ ๋ฐฉ์๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ด๋ผ๋ ์ ์ ๋ณด์ฌ์ค๋ค.
-
13:16
์ํด๋ฆญ Slurm ์ด์ ์๋ Slurm๊ณผ Kubernetes๋ฅผ ํจ๊ป ๊ตฌ์ฑํ๋ ์ผ์ด ์ด๋ ค์ ์ง๋ง, ์ด์ ๋ ๋จ์ผ ๋ช ๋ น์ผ๋ก Kubernetes ํด๋ฌ์คํฐ, Slurm ์ปจํธ๋กค๋ฌ, ๋ก๊ทธ์ธ ๋ ธ๋, ์คํ ๋ฆฌ์ง๋ฅผ ํ๋ก๋น์ ๋ํ๊ณ GPU ๋ ธ๋ ํ๋ง ์ถ๊ฐํ๋ฉด ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ค.
-
14:01
์์ฝ ์ ํต์ ์ธ Slurm์ ๊ณ ์ฑ๋ฅ ์ค์ผ์ค๋ง์๋ ๊ฐํ์ง๋ง ์๋ ์น์ ๋ ์ฝํ๋ฉฐ, Kubernetes ์์ ์ฌ๋ฆฌ๋ฉด ๋ ํ์ ์ํฌํ๋ก๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ๋ ์ฅ์ ๋ณต๊ตฌ์ ๊ด์ธก์ฑ์ ๊ฐ์ถ ํตํฉ ํ๊ฒฝ์ ๋ง๋ค ์ ์๋ค๋ ์ ์ ์ ๋ฆฌํ๋ค.
-
15:55
์คํจ๋ฅผ ์ ์ ๋ก ์ค๊ณํ๊ธฐ ํต์ฌ์ ์ฅ์ ๊ฐ ๋ฐ๋์ ๋ฐ์ํ๋ค๋ ์ฌ์ค์ ์ ์ ๋ก ์ธํ๋ผ๋ฅผ ์ค๊ณํด, ์น๋ช ์ ์ค๋ฅ๊ฐ ๋๋ ํ์ํ ์กฐ์น๊ฐ ์๋์ผ๋ก ์ํ๋๋๋ก ๋ง๋ค๊ณ ์์ง๋์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ง์คํ๊ฒ ํ๋ ๊ฒ์ด๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- GPU ํ์ต ์ธํ๋ผ๋ ์ฑ๋ฅ๋ง์ด ์๋๋ผ ์ฅ์ ๊ฐ์งยท๊ฒฉ๋ฆฌยท๊ต์ฒดยท์ฌ๊ฐ๊น์ง ํฌํจํ ๋ณต๊ตฌ ๊ฒฝ๋ก๋ฅผ ์ฒ์๋ถํฐ ์ค๊ณํด์ผ ์ด์ ๋น์ฉ์ด ๊ธ๊ฒฉํ ์ค์ด๋ ๋ค.
- ํ์ต๊ณผ ์ถ๋ก ์ ๋ถ๋ฆฌ๋ ์คํ์ผ๋ก ์ด์ํ๊ธฐ๋ณด๋ค ๊ฐ์ GPU ํ์ ๊ณต์ ํ๋ฉด ์ ํด ์์์ ์ค์ด๊ณ ์์ ๋ณ๋์ ๋ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋ค.
- ์ฐ๊ตฌ์ ๊ฒฝํ์ ์ ์งํ๋ฉด์ ํ๋ซํผ ํ์ ๊ด์ธก์ฑ๊ณผ ์๋ํ๋ฅผ ํ๋ณดํ๋ ค๋ฉด, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ Slurm์ฒ๋ผ ์ต์ํ๊ฒ ๋๊ณ ๋ด๋ถ ์คํ ๊ณ์ธต์ Kubernetes์ฒ๋ผ ๋ณต์๋ ฅ ์๊ฒ ๊ตฌ์ฑํ๋ ์ ๊ทผ์ด ํจ๊ณผ์ ์ด๋ค.