๋ฅ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํ ๋๋ GPU๊ฐ ํ์์ ์ด๋ผ๊ณ ์๊ฐ๋์ง๋ง, ๋ชจ๋ธ ํ์ต์ด ์๋ฃ๋๊ณ ๋ ํ ์๋น์ ํ๋ ๊ฒฝ์ฐ์๋ GPU ๋์ CPU๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ ์ ๋ ์ต์ ํ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ๋๋ฉด BERT ๊ฐ์ด ๋ฌด๊ฑฐ์ด ๋ชจ๋ธ๋ 32-core Xeon์ด ๋น์ทํ ๊ฐ๊ฒฉ์ V100๋ณด๋ค 6๋ฐฐ ์ด์ ๋ ๋น ๋ฅด๊ฒ inferenceํ๋ค๋ Roblox์ ๋ฆฌํฌํธ๋ ์์ต๋๋ค. ์ด๋ ๊ณง ๊ฐ์ฑ๋น๊ฐ 6๋ฐฐ ๋๋ค๋ ๋ป์ ๋๋ค.
ํ์ง๋ง ์์ ์์น๋ฅผ ์กฐ๊ธ ๋ ๋ค์ฌ๋ค๋ณด๋ฉด, ๊ณตํํ ๋น๊ต๋ ์๋๋ผ๋ ์๊ฐ์ด ๋ญ๋๋ค. 32-core Xeon์ ๊ฒฝ์ฐ ๋ณต์๊ฐ์ ์ฝ์ด๋ก ๋ถํ ๋๋ฉด์ ๋ ๋ฆฝ์ ์บ์ฌ๋ฅผ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ๋์ญ์ ๋ํ ์ฌ์ฉ ์ธก๋ฉด์์๋ ์ ๋ฆฌํ ์ ์ด ์๋ ๋ฐ๋ฉด, V100์ ๊ฒฝ์ฐ ๊ฒฐ๊ตญ ํ๋์ GPU์ด๋ฏ๋ก ๋์์ ๋ณต์๊ฐ์ inference๋ฅผ ์คํํ ๊ฒฝ์ฐ ์บ์ฌ์ ๋ฉ๋ชจ๋ฆฌ ๋์ญ ์ธก๋ฉด์์ “๊ฒฝ์”์ ํ๊ฒ ๋์ด ์ต๋ ์ฑ๋ฅ์ ๋ฝ์๋ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
Inference๋ ํ์ต์ ๋นํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ํจ์ฌ ์ ๊ฒ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋จ์ผ GPU๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋์์ ์ฌ๋ฌ๊ฐ์ inference๋ฅผ ์คํํ ์ ์๋๋ฐ, ์ค์ ๋ก ํ ์คํธํด๋ณด๋ฉด ๊ฐฏ์๊ฐ ๋์ด๋จ์ ๋ฐ๋ผ ์ํ์๋๊ฐ ํฌ๊ฒ ์ ํ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. (์์ ๋ณ๋ ฌ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ํ๋๋ด๋ผ๋ฉด ์๋๊ฐ ๋์ผํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋์ inference์์ ๋ฐฐ์น์ฌ์ด์ฆ๋ฅผ ๋๋ ค๋ณด๋ฉด ์๋ ์ ํ๊ฐ ํจ์ฌ ๋ํฉ๋๋ค)
NVidia์ ์ ๊ท GPU ๊ตฌ์กฐ์ธ Ampere์์ ์๊ฐ๋ Multi-Instance GPU ๊ธฐ์ ์ ์ด๋ฌํ ํ๊ณ๋ฅผ ํด์ํด ์ค ๊ฒ ๊ฐ์ต๋๋ค. ํ๋์ GPU๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ ๋ฆฝ๋ Sub-GPU๋ก ์ต๋ 7๊ฐ๊น์ง ๋ถํ ํ์ฌ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ฐ Sub-GPU๋ ์บ์ฌ์ ๋ฉ๋ชจ๋ฆฌ๋์ญ์ ๋ณ๋ ํ ๋น ๋ฐ์ต๋๋ค. ์ค์ inference์์ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋ ๊ฒ์ผ๋ก ๊ธฐ๋๋ฉ๋๋ค. ๊ฑฐ๊ธฐ์ FP16๊ณผ FP32์ ์ค๊ฐ ํํ์ธ 19-bit format TP32๊ฐ ์๋ก ์ถ๊ฐ๋์ด 6๋ฐฐ ์ ๋ ์ฑ๋ฅ ํฅ์์ ์ด๋ฃจ์๋ค๊ณ ํฉ๋๋ค. (์ด๊ฑด ์ ๋ฐ๋ ํฌ์์ ๋ด๋ณด๋ก ํ ๊ฒ์ด๋ฏ๋ก losslessํ ํฅ์์ ์๋๋๋ค)
๋์ถฉ ํ์ณ์ MIG์ TF32๋ฅผ ์กฐํฉํด์ 20๋ฐฐ(!)์ ์ฑ๋ฅ ํฅ์์ ์ด๋ฃจ์๋ค๊ณ ๊ฐ์ ํด๋ณด๋ฉด ์์ Roblox ์์ ์์ CPU๊ฐ 6๋ฐฐ ๋ ํจ์จ์ ์ด๋ ๊ฒ์ ๋ค์ง์ด์ GPU๊ฐ 3๋ฐฐ ๊ฐ๋ ๋ ํจ์จ์ ์ด๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์๋น์์๋ GPU์ ๊ฒฝ์๋ ฅ์ด ์๊ธด๋ค๊ณ ๋ณผ ์ ์์ง๋ง… ํด๋ผ์ฐ๋ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ GPU ๋จธ์ ์ ๋จ๊ฐ๊ฐ CPU ๋จธ์ ๋๋น 3๋ฐฐ ์ด์ ๋น์ธ๋ฏ๋ก^^ ์์ง๋ ๋ ๋ซ๋ค๋ ๋ง์ ์ฝ๊ฒ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ค์. ํ๋ฐ๊ธฐ RTX 3090 24G๊ฐ ๋์จ๋ค๋๊น ๊ทธ๊ฑธ ์ฌ์ ์ค์ ๋ก ์ฌ๋ฌ๊ฐ์ง ํ ์คํธ๋ฅผ ํด ๋ณด๊ณ ์ถ๋ค์. (MIG, TP32 ํจ๊ณผ ๊ฒ์ฆ) ๋งํฌ๋ NVidia Ampere Architecture ์๊ฐ์ ๋๋ค: