[ML] CPU์™€ GPU, ๊ทธ๋ฆฌ๊ณ  TPU

[์›๋ณธ ๋งํฌ]

ํ•œ๋•Œ๋Š” ๋น„ํŠธ์ฝ”์ธ ์—ดํ’์œผ๋กœ GPU๊ฐ€ ๋™๋‚œ ์ ์ด ์žˆ์—ˆ๊ณ , ๋˜ ์ตœ๊ทผ์—๋Š” ๋จธ์‹ ๋Ÿฌ๋‹/AI ๋•Œ๋ฌธ์— GPU๊ฐ€ ๋ถˆํ‹ฐ๋‚˜๊ฒŒ ํŒ”๋ฆฌ๊ณ  ์žˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ตœ๊ทผ์—๋Š” ๋ฌด์Šจ TPU๋ผ๋Š” ๊ฒƒ๊นŒ์ง€ ๋‚˜์™€์„œ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ์‹์„ ํ”๋“ค๊ณ  ์žˆ๋‹ค.

GPU๋Š” ๋ญ๊ณ , TPU๋Š” ๋˜ ๋ญํ•˜๋Š” ๋†ˆ์ผ๊นŒ? ์—ญ์‚ฌ์™€ ์›๋ฆฌ๋ฅผ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๋„๋ก ํ•˜๊ฒ ๋‹ค.



CPU (Central Processing Unit)

์ปดํ“จํ„ฐ๋ฅผ ๊ทธ๋ฆฌ ์ž˜ ์•Œ์ง€๋Š” ์•Š๋Š” ์‚ฌ๋žŒ์ด๋ผ๋„ CPU๊ฐ€ ๋ญ”์ง€๋Š” ์•Œ ๊ฒƒ์ด๋‹ค.
๊ฒฐ๊ตญ์—๋Š” ๊ณ„์‚ฐ๊ธฐ๋‹ค.

์›๋ž˜ ์ดˆ๊ธฐ ํ˜•ํƒœ์˜ ์ปดํ“จํ„ฐ์—๋Š” ํ•˜๋‚˜์˜ ์ค‘์•™ ๊ณ„์‚ฐ ์žฅ์น˜๊ฐ€ ์กด์žฌํ–ˆ๊ณ , ๊ทธ๊ฑธ CPU๋ผ๊ณ  ๋ถˆ๋ €๋‹ค.
CPU๋ผ๋Š” ์šฉ์–ด๋Š” 1955๋…„ ์ฆˆ์Œ๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

ํ˜„์žฌ ์ผ๋ฐ˜ ๋ฐ์Šคํฌํƒ‘ ํ™˜๊ฒฝ์—์„œ๋Š” ์ธํ…”๊ณผ AMD๊ฐ€ ์–‘๋ถ„ํ•˜๊ณ  ์žˆ๋‹ค.




GPU (Graphics Processing Unit)

"๊ทธ๋ž˜ํ”ฝ์นด๋“œ"๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๋Š” GPU๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ทธ๋ž˜ํ”ฝ ์žฅ์น˜๋“ค์„ ํฌํ•จํ•œ ํ’€ํŒจํ‚ค์ง€๋‹ค.

์ปดํ“จํŒ… ์ดˆ๊ธฐ์—๋Š” CPU๋งŒ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์ถฉ๋ถ„ํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ GUI ์ปดํ“จํŒ… ์‹œ๋ž˜๊ฐ€ ๋„๋ž˜ํ•˜๋ฉด์„œ ์‚ฌ์ •์ด ์กฐ๊ธˆ ๋‹ฌ๋ผ์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
๋งจ๋‚  TV ๋ณด๊ณ  ์ปดํ“จํ„ฐ๋กœ ์˜ํ™” ๋Œ๋ ค๋ณด๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ์ž˜ ์™€๋‹ฟ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์‚ฌ์ง„, ์˜์ƒ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋Š” ๋งค์šฐ ๋ฌด๊ฑฐ์šด ์ฒ˜๋ฆฌ๋ฐฉ์‹์— ์†ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅ ์ •๋„๋Š” ๋ถ„๋ฆฌํ•ด์„œ ๊ตฌ์„ฑํ•˜๋Š” ์›€์ง์ž„์„ ๋ณด์˜€๋‹ค.

์˜์ƒ์ฒ˜๋ฆฌ๋ฅผ ํ• ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์€ ๋ฐ์ดํ„ฐ์˜ ๊ฑฐ๋Œ€ํ•œ ์ง‘ํ•ฉ์„ ๋‹ค๋ฃจ๋Š” "๋ฒกํ„ฐ ์—ฐ์‚ฐ"์ธ๋ฐ, CPU์—์„œ ์ด๊ฑธ ๋‹ค ํ•˜๊ธฐ์—๋Š” ๋ถ€๋‹ด์ด ๋„ˆ๋ฌด ์ปธ๋‹ค.
2D๊นŒ์ง€๋Š” ์–ด๋–ป๊ฒŒ ์–ด๋–ป๊ฒŒ ํ•ด๋„, 3D๋Š” ๊ฐ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค. GPU ์—ญ์‚ฌ์— ์žˆ์–ด์„œ ๊ฐ€์žฅ ํฐ ๋ถ„๊ธฐ์ ์€ 3D ์ฒ˜๋ฆฌ์˜€๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ๊ฑธ ์ „๋ฌธ์ ์œผ๋กœ ํ•ด์ฃผ๋Š” ์žฅ์น˜๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š”๊ฒŒ ๋‚ซ๋‹ค๋Š” ๊ฒฐ๋ก ์— ์ด๋ฅด๋ €๊ณ , ํ˜„์žฌ์˜ GPU๋Š” ๋ฒกํ„ฐ ์—ฐ์‚ฐ, ๋Œ€๊ทœ๋ชจ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”๋œ ๊ณ ์„ฑ๋Šฅ์˜ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋˜์—ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ GPU๋Š” CPU๋ณด๋‹ค ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ๊ฐ€ ์‰ฌ์šด ํŽธ์ด๋‹ค. ์™œ๋ƒ๋ฉด, ๊ทธ๋ƒฅ ํฌ๊ธฐ ๋Š˜๋ฆฌ๊ณ  ์ฝ”์–ด ์ˆ˜๋งŒ ๋ฌด์‹ํ•˜๊ฒŒ ๋Š˜๋ ค๋„ ์„ฑ๋Šฅ์ด ์ž˜ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜ํ”ฝ์นด๋“œ๊ฐ€ ์ ์  ์ปค์ง€๊ณ  ์žˆ๋Š” ์ด์œ ์ด๊ธฐ๋„ ํ•˜๋‹ค.
์š”์ฆ˜ GPU๋“ค์€ ์ฝ”์–ด๊ฐ€ ์ˆ˜์ฒœ๊ฐœ๋‹ค.

๊ทธ๋ž˜ํ”ฝ ์žฅ์น˜๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์›€์ง์ž„์€ 1970๋…„๋Œ€๋ถ€ํ„ฐ ์žˆ์—ˆ๊ณ , GPU๋ผ๋Š” ์šฉ์–ด๋Š” 1994๋…„ Sony์— ์˜ํ•ด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

๋Œ€ํ‘œ์ ์ธ GPU ์ œ์กฐ์‚ฌ๋Š” ์—”๋น„๋””์•„, AMD, ์ธํ…” ๋“ฑ์ด ์žˆ๋‹ค. ํ˜„์žฌ๋Š” ์—”๋น„๋””์•„๊ฐ€ ์•ž์„œ๋‚˜๊ฐ€๋Š” ๋ชจ์–‘์ƒˆ๋‹ค.

GPU๋Š” ์›๋ž˜ ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ์šฉ์œผ๋กœ๋งŒ ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•˜๋‹ค๋Š” ์žฅ์  ํƒ“์— ์š”์ฆ˜์€ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ๋” ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.


1. ๋น„ํŠธ์ฝ”์ธ๊ณผ ์ฑ„๊ตด (2017~2022?)

๋น„ํŠธ์ฝ”์ธ์„ ๋น„๋กฏํ•œ ๋ธ”๋ก์ฒด์ธ ์‹œ์Šคํ…œ๋“ค์ด ๋‚œ๋ฆฝํ•˜๋ฉด์„œ GPU ํ™˜๊ฒฝ์ด ํ”๋“ค๋ฆฌ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
GPU๊ฐ€ ๋Œ€๊ทœ๋ชจ ๋ณ‘๋ ฌ๊ณ„์‚ฐ์— ๋Šฅํ•˜๋‹ค๋Š” ์ ์„ ํ™œ์šฉํ•ด์„œ ์ฝ”์ธ์˜ ์ฑ„๊ตด(mining)์— ๋‚จ์šฉํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.

ํ˜„์žฌ๋Š” ๋‹ค์ˆ˜์˜ ์‹œ์Šคํ…œ์ด ์ฑ„๊ตด ์‹œ์Šคํ…œ์„ ํ๊ธฐํ•˜๊ฑฐ๋‚˜, ์ฑ„๊ตด ํšจ์œจ์ด ๋–จ์–ด์ง€๋ฉด์„œ ์ฑ„๊ตด๊ธฐ๋กœ์„œ์˜ ์—ญํ• ์€ ๊ฑฐ์˜ ๋๋‚œ ์ƒํƒœ๋‹ค.


2. ๋จธ์‹ ๋Ÿฌ๋‹ (2010?~)

๋จธ์‹ ๋Ÿฌ๋‹์˜ ํ•™์Šต์€ ๊ต‰์žฅํžˆ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ๋“ค์„ ํ•„์š”๋กœ ํ•œ๋‹ค.
ํŠนํžˆ ๋งค์šฐ ๋งŽ์€ ํ–‰๋ ฌ ์—ฐ์‚ฐ๊ณผ ๋ฒกํ„ฐ ์—ฐ์‚ฐ์„ ํ•„์š”๋กœ ํ•˜๋Š”๋ฐ, GPU์˜ ๋Œ€๋Ÿ‰ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ™œ์šฉํ•˜๋ฉด ์ด๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ML ํ•™์Šต ๋Œ๋ฆฐ๋‹ค๊ณ  ํ•˜๋ฉด ์ปดํ“จํ„ฐ์— GPU ์ฃผ๋ ์ฃผ๋  ๋‹ฌ์•„๋Œ€๊ณ  ๋Œ๋ฆฌ๋Š”๊ฒŒ ๋‹น์—ฐํ•œ ์ผ์ด ๋๋‹ค.

ํ˜„์žฌ์ง„ํ–‰ํ˜•์ด๋‹ค.




TPU (Tensor Processing Units)

TPU๋Š” tensorflow ๋“ฑ์˜ ํ…์„œ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”๋œ ํ”„๋กœ์„ธ์„œ๋ฅผ ๋งํ•œ๋‹ค.

2016๋…„ ๊ตฌ๊ธ€์— ์˜ํ•ด์„œ ์ œ์ž‘, ๋ฐœํ‘œ๋˜์—ˆ์œผ๋ฉฐ, ํ˜„์žฌ๋„ ๊ตฌ๊ธ€์ด ๋…์ ์ ์œผ๋กœ ์ œ์ž‘, ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.
ํšŒ๋กœ๋ถ€ํ„ฐ ๋‹ค ์ง์ ‘ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

GPU๊ฐ€ ์—ฌ๋Ÿฌ๋ชจ๋กœ ๋น ๋ฅด๊ณ  ์ข‹๊ธด ํ•˜์ง€๋งŒ, ์ด๊ฒƒ๋„ ์—ญ์‹œ ๋‹จ์ ์ด ์กด์žฌํ–ˆ๋‹ค. ๋„ˆ๋ฌด ๋น„์‹ธ๊ณ , ์ „๋ ฅ์†Œ๋ชจ๋„ ๋„ˆ๋ฌด ์‹ฌ๊ฐํ•œ ์ˆ˜์ค€์ด์—ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ (TPU ์ธก์˜ ์ฃผ์žฅ์— ์˜ํ•˜๋ฉด) ์ž์›์ด ๋งค์šฐ ํ’์กฑํ•จ์—๋„ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ณ  ์‹ ๊ฒฝ๋ง์— ์ž˜ ๋งž์ง€๋Š” ์•Š๋‹ค.

TPU๋Š” ๊ทธ๋Ÿฐ GPU์˜ ๋น„ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ณ ์ž ๋‚˜์˜จ ํƒ€๊ฐœ์ฑ…์ด๋‹ค.
๋Œ€์ฒด๋กœ GPU๋ณด๋‹ค ๋ช‡๋ฐฐ-๋ช‡์‹ญ๋ฐฐ๋Š” ๋น ๋ฅด๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋ฉฐ, ๋น„์šฉํšจ์œจ์ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

https://cloud.google.com/tpu?hl=ko



์ฐธ์กฐ
https://en.wikipedia.org/wiki/Central_processing_unit
https://en.wikipedia.org/wiki/Graphics_processing_unit
https://en.wikipedia.org/wiki/Tensor_Processing_Unit
https://serverguy.com/comparison/cpu-vs-gpu-vs-tpu/
https://cloud.google.com/tpu?hl=ko