GPU์˜ ๋“ฑ์žฅ

GPU๋Š” Graphic Processing Unit์˜ ๋‘๋ฌธ์ž์ง‘ํ•ฉ์ด๋‹ค.
‘GPU’๋Š” 1999๋…„ Nvidia๊ฐ€ GeForce 256์„ ๋ฐœํ‘œํ•˜๋ฉด์„œ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜์˜€๊ณ , ์ง€๊ธˆ์€ ์ผ๋ฐ˜๋ช…์‚ฌ๊ฐ€ ๋˜์—ˆ๋‹ค.

Nvidia GeForce 256
์‚ฌ์ง„: Nvidia GeForce 256, ์ถœ์ฒ˜: Wikipedia

GPU์˜ ๋“ฑ์žฅ์€ ๊ทธ ๋™์•ˆ ๋‹จ์ˆœํ•œ ํ™”๋ฉด์ถœ๋ ฅ ์žฅ์น˜๊ฐ€ ์—ฐ์‚ฐ์žฅ์น˜๋กœ ๋ณ€ํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ–ˆ๋‹ค. GPU์˜ ๋“ฑ์žฅ์œผ๋กœ ์ ์€ ์ปดํ“จํŒ… ์ž์›์œผ๋กœ ํด๋ฆฌ๊ณค(Polygon)์„ ํ™”๋ฉด ์†์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„(TCL; Transform, Clipping, and Lighting)ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•˜์—ฌ ์‚ฌ์‹ค์ ์ธ ์›€์ง์ž„์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ์šด ์‹œ์žฅ์„ ์—ฐ Nvidia๋Š” 2007๋…„ GPU๋ฅผ ์ผ๋ฐ˜์—ฐ์‚ฐ์— ์ฐธ์—ฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” Tesla ์ œํ’ˆ๊ตฐ์„ ๋ฐœํ‘œํ•˜๋ฉฐ ์ƒˆ๋กœ์šด ์ฝ”ํ”„๋กœ์„ธ์„œ(co-processor)์˜ ์‹œ๋Œ€๋ฅผ ์„ ์–ธํ–ˆ๋‹ค. ์ฝ”ํ”„๋กœ์„ธ์„œ๋กœ์„œ์˜ GPU๋ฅผ GPGPU, General Purpose Graphic Processing Unit์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅ์„ ๋‹ด๋ณดํ•˜์ง€ ์•Š๋Š” ์ผ๋ฐ˜๋ชฉ์  ์—ฐ์‚ฐ์žฅ์น˜์ด๋‹ค.
GPU ์ปดํ“จํŒ…์ด๋ž€ ๋ฐ”๋กœ, GPGPU๋ฅผ ์—ฐ์‚ฐ์— ์ฐธ์—ฌ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

GPU๊ฐ€ ์—ฐ์‚ฐํ•˜๋Š” ๋ฐฉ์‹

GPU๋Š” ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ์—ฐ์‚ฐ ์ฝ”์–ด๋ฅผ CPU์™€๋Š” ๋น„๊ตํ•  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ˜„์žฌ์˜ CPU๊ฐ€ ์„œ๋ฅธ๊ฐœ ๋ฏธ๋งŒ์˜ ์ฝ”์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ์ตœ์‹  GPU๋Š” 3์ฒœ๊ฐœ ์ด์ƒ์˜ ์ฝ”์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ฌผ๋ก , GPU์˜ ์ฝ”์–ด๋Š” CPU์˜ ์ฝ”์–ด์™€ ๋น„๊ฒฌ๋  ๋งŒํ•œ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋‹จ์ˆœํ•œ ์—ฐ์‚ฐ์„ ์ด GPU์—๊ฒŒ ๋งก๊ธด๋‹ค๋ฉด ๊ทธ ํšจ์œจ์€ ์—„์ฒญ๋‚˜๋‹ค.

GPU์˜ ํšจ์œจ์„ ๋งํ•  ๋•Œ, ํ•ญ์ƒ ์–ธ๊ธ‰๋˜๋Š” ๊ฒƒ์ด ‘๋ณ‘๋ ฌ์—ฐ์‚ฐ’์ด๋‹ค. ๋งŽ์€ ์ฝ”์–ด๋ฅผ ํ•œ ๋ฒˆ์— ๋งŽ์€ ์ผ์„ ์‹œ์ผœ์•ผ ๊ทธ ํšจ์œจ์„ ๊ทน๋Œ€ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง๋„ ๋œ๋‹ค. CPU๋Š” ๊ทธ์— ๋น„ํ•ด ‘์ง๋ ฌ์—ฐ์‚ฐ’์— ๊ฐ€๊น๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ตฌ์กฐ์˜ ์ฐจ์ด์ด์ง€ ๋Šฅ๋ ฅ์˜ ์ฐจ์ด๋Š” ์•„๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ‘๋ณ‘๋ ฌ์—ฐ์‚ฐ’๊ณผ ‘์ง๋ ฌ์—ฐ์‚ฐ’์„ ์–ด๋–ป๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๋‹ค์Œ์˜ ์ˆซ์ž๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.
CPU๋Š” ์ฒซ๋ฒˆ์งธ ์ˆ˜๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ˆ˜๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ฉํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
GPU๋Š” ์ผ์ •ํ•œ ๋ฌถ์Œ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ์‚ฐ๋‹จ๊ณ„๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์งง์•„ ๊ฒฐ๊ณผ์ถœ๋ ฅ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ˜น์€ ๋™์ผ ์„ฑ๊ฒฉ์˜ ๋ฌธ์ œ๋ฅผ ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.


์‚ฌ์ง„: ์ง๋ ฌ์—ฐ์‚ฐ๊ณผ ๋ณ‘๋ ฌ์—ฐ์‚ฐ์˜ ์˜ˆ, ์ถœ์ฒ˜: ์ง์ ‘์ž‘์„ฑ

GPU ์ปดํ“จํŒ…๊ณผ ML/DL

GPU๋Š” ์ด๋ ‡๊ฒŒ ๋ณ‘๋ ฌ์—ฐ์‚ฐ์—์„œ ํŠน๋ณ„ํ•œ ๋Šฅ๋ ฅ์„ ๋ฐœํœ˜ํ•œ๋‹ค. ์ด๋Ÿฐ ๋ณ‘๋ ฌ์—ฐ์‚ฐ์ด ํŠนํžˆ ์š”๊ตฌ๋˜๋Š” ๋ถ„์•ผ๊ฐ€ machine learning/deep learning(ML/DL) ๋ถ„์•ผ์ด๋‹ค. ์ธ๊ณต์ง€๋Šฅ์€ ์•„์ง ์ฐพ์•„์˜ค์ง€ ์•Š์•˜๊ณ , ์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ฃฝ๋Š” ๋‚ ๊นŒ์ง€ ์ฐพ์•„์˜ค์ง€ ๋ชป ํ• ์ง€๋„ ๋ชจ๋ฅธ๋‹ค. 1950๋…„๋Œ€๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” AI์— ๋Œ€ํ•œ ๋ถ€ํ‘ผ ๊ฟˆ์„ ํ‚ค์›Œ ์™”์ง€๋งŒ ๋ฒˆ๋ฒˆํžˆ ์ขŒ์ ˆํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ธฐ๊ณ„๊ฐ€ ํ•™์Šตํ•˜์—ฌ ๋ณด๋‹ค ์ข‹์€ ๊ฒฐ๋ก ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋ฅด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ์ง€๊ธˆ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๊ฒƒ์ด ML/DL์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  GPU๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋ˆˆ๋ถ€์‹œ๊ฒŒ ๋ฐœ์ „ํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ธฐ์ˆ ์ด ๊ทธ๊ฒƒ์„ ๋’ท๋ฐ›ํž˜ํ•˜๊ณ  ์žˆ๋‹ค.

ML/DL์€ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์œ ์‚ฌํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ถ„์„ํ•˜๋Š” ์ž‘์—…์˜ ์—ฐ์†์ด๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ๋งŒ ๋ณธ๋‹ค๋ฉด ๊ทธ๋ ‡๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ„ด์€ ๋ณ‘๋ ฌ์—ฐ์‚ฐ์— ๊ฐ€๊น๋‹ค. ๊ทธ๋ž˜์„œ Ml/DL์—์„œ ํ•˜๋“œ์›จ์–ด ๊ธฐ์ˆ ๋กœ GPU๊ฐ€ ์ž์ฃผ ์–ธ๊ธ‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.

IBM์€ S822LC๋ผ๋Š” ์„œ๋ฒ„ ์‹œ์Šคํ…œ์— GPGPU๋ฅผ ํƒ‘์žฌํ•˜์—ฌ ์‹œ์žฅ์— ์„ ๋ณด์˜€๋‹ค. ์ฒซ๋ฒˆ์งธ ์ œํ’ˆ์ด ์ฝ”๋“œ๋„ค์ž„, ‘Firestone’์ด์—ˆ๊ณ , ๋‘๋ฒˆ์งธ ์ œํ’ˆ์ด ์ž‘๋…„ ๊ฒจ์šธ์ด ์‹œ์ž‘ํ•  ๋ฌด๋ ต ์ถœ์‹œ๋œ ‘Minsky’์ด๋‹ค. ๊ทธ๋ ‡๋‹ค, 2016๋…„ ์ดˆ์— ์ž‘๊ณ ํ•˜์‹  Marvin Lee Minsky ๋ฐ•์‚ฌ๋‹˜์„ ๊ธฐ๋ฆฌ๋Š” ์˜๋ฏธ๋กœ ์ง€์—ˆ๋‹ค. Firestone์ด ์—ฌํƒ€ ์„œ๋ฒ„ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ PCIe ๋ฒ„์Šค์— K80์„ ์žฅ์ฐฉํ•œ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ, Minsky๋Š” Nvidia์™€์˜ ํ˜‘์—…์„ ํ†ตํ•˜์—ฌ ๊ธฐ์กด์˜ PCIe๋ฅผ ๋Œ€์ฒดํ•˜๋Š” NVLink๋ผ๋Š” ์ƒˆ๋กœ์šด ์ „์šฉ ๋ฒ„์Šค๋ฅผ ์„ค๊ณ„์— ๋ฐ˜์˜ํ•˜์—ฌ P100์„ ์žฅ์ฐฉํ–ˆ๋‹ค.

GPU ์ปดํ“จํŒ…์˜ ๋” ํฐ ๊ฐ€๋Šฅ์„ฑ, NVLink

NVLink๋Š” lane ๋‹น 20GB/s ๋Œ€์—ญํญ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. PCIe 3.0์€ lane ๋‹น 1GB/s์ด๋‹ค. NVLink๋Š” GPU ๋‹น 4๊ฐœ์˜ lane์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ , PCIe 3.0์˜ ์ตœ๋Œ€ lane ์ˆ˜๋Š” 16๊ฐœ์ด๋‹ค. NVLink๋Š” GPU์™€ CPU ๊ทธ๋ฆฌ๊ณ  GPU์™€ GPU๊ฐ€ ์ง์ ‘ ์—ฐ๊ฒฐ(peer-to-peer)๋˜์ง€๋งŒ, PCIe 3.0์€ ๊ทธ๋ ‡์ง€ ๋ชป ํ•˜๋‹ค. ์ด๋Ÿฐ ํŠน์„ฑ์€ ์‹ค์ œ ์šด์˜ํ™˜๊ฒฝ์—์„œ 5๋ฐฐ์—์„œ 12๋ฐฐ์˜ ๋ฐ์ดํ„ฐ ์ด๋™ ์†๋„์˜ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ๋‹ค. NVLink๋Š” GPU์˜ ๊ฐ€๋Šฅ์„ฑ์„ ๋˜ ํ•œ ๋ฒˆ ๋„“ํ˜”๋‹ค.

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.