TPU ์์ธ
๊ฐ์
TPU(Tensor Processing Unit)๋ Google์ด ์์ฒด ์ค๊ณํ ์ ๊ฒฝ๋ง ํ์ต ์ ์ฉ ASIC(Application-Specific Integrated Circuit)์ผ๋ก, 2015๋ ๋ถํฐ Google ๋ฐ์ดํฐ์ผํฐ์์ ์ด์๋์ด ์๋ค. ๋ฒ์ฉ ํ๋ก์ธ์(CPU)์ ๊ทธ๋ํฝ ํ๋ก์ธ์(GPU)๊ฐ ์ผ๋ฐ์ ์ธ von Neumann ๊ตฌ์กฐ์ ํ๊ณ๋ฅผ ๊ฐ์ง๋ ๋ฐ๋ฉด, TPU๋ ๋ฉํธ๋ฆญ์ค ํ๋ก์ธ์(Matrix Processor)๋ก์ ๋๊ท๋ชจ ํ๋ ฌ ๊ณฑ์ -๋์ (Multiply-Accumulate) ์ฐ์ฐ์ ์ต์ ํ๋ systolic array ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ค.
Google์ 2016๋ Google I/O์์ TPU๋ฅผ ๊ณต์ ๋ฐํํ์ผ๋ฉฐ, TPU v1๋ถํฐ ์ต์ TPU v8๊น์ง ์ง์์ ์ผ๋ก ์ธ๋๋ฅผ ๊ฑฐ๋ญํด ์๋ค. TPU๋ Google Cloud TPU ์๋น์ค๋ฅผ ํตํด ์ธ๋ถ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ฉฐ, JAX, TensorFlow, PyTorch/XLA ๋ฑ์ ํ๋ ์์ํฌ๋ฅผ ์ง์ํ๋ค. TPU์ ํต์ฌ ๋ชฉํ๋ ๊ธฐ๊ณ ํ์ต ์ํฌ๋ก๋์์ ๋์ ์ฒ๋ฆฌ๋(throughput)๊ณผ ์๋์ง ํจ์จ์ ๋ฌ์ฑํ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ฅผ ์ํด ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ ๋ณ๋ชฉ์ ์ต์ํํ๊ณ ๋๊ท๋ชจ ๋ณ๋ ฌ ํ๋ ฌ ์ฐ์ฐ์ ํ๋์จ์ด ์์ค์์ ์ง์ ์ํํ๋ค.
ํต์ฌ ๊ฐ๋
Systolic Array ์ํคํ ์ฒ
Systolic Array๋ ๋ฐ์ดํฐ๊ฐ ๊ณฑ์ -๋์ฐ ์ ๋(Multiply-Accumulator) ๊ฒฉ์๋ฅผ ์ํ์ ์ผ๋ก ํ๋ฅด๋ฉฐ ์ฐ์ฐ์ด ์ํ๋๋ ์ํคํ ์ฒ์ด๋ค. CPU๊ฐ ๋งค ์ฐ์ฐ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์์ operand๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, systolic array๋ ํ ๋ฒ ๋ก๋๋ ๋ฐ์ดํฐ๊ฐ ์ธ์ ์ ๋์ผ๋ก ์ ๋ฌ๋๋ฉด์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ํ์๋ฅผ ๋ํญ ์ค์ด๊ณ ์๋์ง ํจ์จ์ ๋์ธ๋ค.
๋์ ์๋ฆฌ:
- ๊ฐ์ค์น(Weight)๋ MXU ๋ด๋ถ์ ํ๋ฆฌ๋ก๋(preload)๋๋ค.
- ์
๋ ฅ ๋ฐ์ดํฐ(Activation)๊ฐ ํ ๋จ์๋ก ์คํธ๋ฆฌ๋ฐ ์
๋ ฅ๋๋ค.
- ๊ฐ ์ ๋์์ ๊ณฑ์
ํ ๊ฒฐ๊ณผ๊ฐ ์ ์ ๋์ผ๋ก ์ ๋ฌ๋๋ฉฐ ๋์ ๋๋ค.
- ์ต์ข
๊ฒฐ๊ณผ ๋ฒกํฐ๊ฐ MXU์์ ์ถ๋ ฅ๋๋ค.
- ๋ฐ์ดํฐ๊ฐ ๊ฒฉ์๋ฅผ ํต๊ณผํ๋ ๋์ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ๋ถํ์ํ๋ค.
TPU MXU ํฌ๊ธฐ ๋น๊ต:
| ์ธ๋ | MXU ํฌ๊ธฐ | ๋์ฐ ์ ๋ฐ๋ | ์ ๋ ฅ ์ ๋ฐ๋ | MXU๋น ํด๋ญ ์ฌ์ดํด๋น MAC |
|---|---|---|---|---|
| TPU v1 | 256ร256 | INT32 | INT8 | 65K MAC |
| TPU v2/v3 | 128ร128 | FP32 | BF16 | 16K MAC |
| TPU v4/v5p | 128ร128 | FP32 | BF16 | 16K MAC |
| TPU v6e | 256ร256 | FP32 | BF16 | 65K MAC |
| TPU7x | 256ร256 | FP32 | BF16 | 65K MAC |
bfloat16 ํฌ๋งท
bfloat16(Brain Floating Point)๋ Google Brain์์ ๊ฐ๋ฐํ 16๋นํธ ๋ถ๋์์์ ํฌ๋งท์ผ๋ก, IEEE 754 FP32์ ์ง์ ๋นํธ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๊ณ mantissa๋ฅผ 7๋นํธ๋ก ์ค์ธ ๊ฒ์ด๋ค. FP32์ ๋์ผํ ๋์ ๋ฒ์(10โปยณโธ ~ 10ยณโธ)๋ฅผ ๊ฐ์ง๋ฉด์๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ๋์ญํญ์ ์ ๋ฐ์ผ๋ก ์ค์ฌ TPU์ ์ฐ์ฐ ํจ์จ์ ๋์ธ๋ค.
TensorCore ๊ตฌ์กฐ
TensorCore๋ TPU ์นฉ ๋ด๋ถ์ ํต์ฌ ์ฐ์ฐ ๋จ์๋ก, ํ๋ ์ด์์ MXU, ๋ฒกํฐ ์ ๋(Vector Unit), ์ค์นผ๋ผ ์ ๋(Scalar Unit)์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์ธ๋์ ๋ฐ๋ผ ์นฉ๋น TensorCore ์์ TensorCore ๋ด๋ถ MXU ์๊ฐ ๋ค๋ฅด๋ฏ๋ก, TPU๋ฅผ ๋ณผ ๋๋ "์นฉ๋น TensorCore ์"์ "TensorCore๋น MXU ์"๋ฅผ ํจ๊ป ๋ด์ผ ํ๋ค.
| ๊ตฌ์ฑ ์์ | ์ญํ | ํน์ง |
|---|---|---|
| MXU (Matrix Multiply Unit) | ํ๋ ฌ ๊ณฑ์ -๋์ ์ฐ์ฐ | systolic array ๊ธฐ๋ฐ, BF16 ์ ๋ ฅ/FP32 ๋์ฐ |
| Vector Unit | ์ผ๋ฐ ์ฐ์ฐ (ํ์ฑํ, softmax ๋ฑ) | ๋ฒกํฐ ์ฐ์ฐ ์ ์ฉ |
| Scalar Unit | ์ ์ด ํ๋ฆ, ์ฃผ์ ๊ณ์ฐ | ํ๋ก๊ทธ๋๋ฐ ๋ก์ง ๋ด๋น |
| SparseCore | ํฌ์ ์ฐ์ฐ ๊ฐ์ | v5p/TPU7x๋ ์นฉ๋น 4๊ฐ, v6e๋ ์นฉ๋น 2๊ฐ |
HBM(High Bandwidth Memory)
TPU๋ HBM์ ์ฌ์ฉํ์ฌ MXU์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ณต๊ธํ๋ค. TPU v2๋ถํฐ HBM์ ๋์ ํ์์ผ๋ฉฐ, ์ธ๋๊ฐ ๊ฑฐ๋ญ๋ ์๋ก ์ฉ๋๊ณผ ๋์ญํญ์ด ํ๋๋์๋ค.
| ์ธ๋ | HBM ์ฉ๋ | ๋์ญํญ | ๋ฉ๋ชจ๋ฆฌ ์ข ๋ฅ |
|---|---|---|---|
| TPU v2 | 16GB | 600 GB/s | HBM2 |
| TPU v3 | 32GB | 900 GB/s | HBM2 |
| TPU v4 | 32GB | 1.2 TB/s | HBM2e |
| TPU v5p | 95GB | 2.765 TB/s | HBM3 |
| TPU v6e | 32GB | 1.638 TB/s | HBM |
| TPU7x (Ironwood) | 192GB | 7.38 TB/s | HBM3e |
ICI(Inter-Chip Interconnect)
ICI๋ TPU Pod ๋ด ์นฉ ๊ฐ ๊ณ ์ ์ฐ๊ฒฐ ๋คํธ์ํฌ๋ก, ๋จ์ผ ์นฉ์ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๋์ด ๋๊ท๋ชจ ๋ชจ๋ธ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค. TPU v4๋ถํฐ๋ ํ๋ธ ๊ฐ ์ฐ๊ฒฐ์ ๊ดํ์ ํ๋ก ์ค์์น(OCS: Optical Circuit Switch)๋ฅผ ์ฌ์ฉํด ๋ํ ์ฌ๋ผ์ด์ค์ ์ฅ์ ์ฐํ์ ํ ํด๋ก์ง ์ด์ ์ ์ฐ์ฑ์ ๋์๋ค.
ํ์ฅ ๊ท๋ชจ:
| ์ธ๋ | Pod๋น ์ต๋ ์นฉ ์ | ํ ํด๋ก์ง/๋คํธ์ํฌ ํน์ง |
|---|---|---|
| TPU v2 | 256 ์นฉ | 2D ํ ๋ฌ์ค ๊ธฐ๋ฐ Pod |
| TPU v3 | 1,024 ์นฉ | Pod ๊ท๋ชจ ํ์ฅ, ์ก์ฒด ๋๊ฐ ๋์ |
| TPU v4 | 4,096 ์นฉ | 3D ๋ฉ์/ํ ๋ฌ์ค, OCS ๊ธฐ๋ฐ ํ๋ธ ๊ฐ ์ฐ๊ฒฐ |
| TPU v5p | 8,960 ์นฉ | 3D ํ ๋ฌ์ค, ํธ์์คํฐ๋ ํ ๋ฌ์ค ์ง์ |
| TPU v6e | 256 ์นฉ | 2D ํ ๋ฌ์ค, ์ถ๋ก ์นํ์ 8์นฉ ํธ์คํธ ๊ตฌ์ฑ |
| TPU7x | 9,216 ์นฉ | 3D ํ ๋ฌ์ค, ์นฉ๋น 1.2 TB/s ICI |
SparseCore
SparseCore๋ ํฌ์ ์ฐ์ฐ ์ ์ฉ ๋ฐ์ดํฐํ๋ก์ธ์๋ก, ์ถ์ฒ ๋ชจ๋ธ(Recommendation Model)๊ณผ ๊ฐ์ ๋๊ท๋ชจ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ๊ฐ์์ ํนํ๋์ด ์๋ค. TPU v5p์ TPU7x์๋ ์นฉ๋น 4๊ฐ์ SparseCore๊ฐ, TPU v6e์๋ ์นฉ๋น 2๊ฐ์ SparseCore๊ฐ ๋ด์ฅ๋๋ค.
๋น๊ต/๋ถ์
TPU ์ธ๋๋ณ ๋น๊ต
| ํญ๋ชฉ | TPU v1 | TPU v2 | TPU v3 | TPU v4 | TPU v5p | TPU v6e | TPU7x |
|---|---|---|---|---|---|---|---|
| ์ถ์๋ ๋ | 2015 | 2017 | 2018 | 2021 | 2023 | 2024 | 2025 |
| ๊ณต์ | 28nm | 16nm | 16nm | 7nm | - | - | - |
| ๋ฉ๋ชจ๋ฆฌ | 8GB DDR3 | 16GB HBM2 | 32GB HBM2 | 32GB HBM2e | 95GB HBM3 | 32GB HBM | 192GB HBM3e |
| ๋์ญํญ | 34 GB/s | 600 GB/s | 900 GB/s | 1.2 TB/s | 2.765 TB/s | 1.638 TB/s | 7.38 TB/s |
| ํผํฌ ์ฑ๋ฅ | 23 TOPS (INT8) | 45 TFLOPS | 123 TFLOPS | 275 TFLOPS (BF16) | 459 TFLOPS (BF16) | 918 TFLOPS (BF16) | 2,307 TFLOPS (BF16) |
| Pod ๊ท๋ชจ | ๋จ์ผ | 256 ์นฉ | 1,024 ์นฉ | 4,096 ์นฉ | 8,960 ์นฉ | 256 ์นฉ | 9,216 ์นฉ |
TPU vs GPU ์ํคํ ์ฒ ๋น๊ต
| ํญ๋ชฉ | TPU (v5p) | NVIDIA H100 |
|---|---|---|
| ์ค๊ณ ์ฒ ํ | ํ๋ ฌ ์ฐ์ฐ ์ ์ฉ | ๋ฒ์ฉ ๋ณ๋ ฌ ์ฒ๋ฆฌ |
| ์ฐ์ฐ ์ ๋ | systolic array (MXU) | CUDA Core + Tensor Core |
| ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ | XLA ์ปดํ์ผ๋ฌ | CUDA ์ปค๋ |
| ๋ฉ๋ชจ๋ฆฌ | 95GB HBM3 | 80GB HBM3 |
| ๋์ญํญ | 2.76 TB/s | 3.35 TB/s |
| ์นฉ ๊ฐ ์ฐ๊ฒฐ | ICI (๊ดํ ์ค์์น) | NVLink/NVSwitch |
| ํ์ฅ์ฑ | Pod (์์ฒ ์นฉ) | DGX (8 GPU) |
| ์ ๊ทผ ๋ฐฉ์ | Google Cloud ์ ์ฉ | ์จํ๋ ๋ฏธ์ค/ํด๋ผ์ฐ๋ |
| ์ํ๊ณ | JAX/TensorFlow/XLA | CUDA/cuDNN/TensorRT |
TPU VM ์ํคํ ์ฒ
TPU VM์ ๋ฌผ๋ฆฌ์ ์ผ๋ก TPU ํ๋์จ์ด์ ์ฐ๊ฒฐ๋ ๊ฐ์ ๋จธ์ ์ผ๋ก, ์ฌ์ฉ์๊ฐ SSH๋ฅผ ํตํด ์ง์ ์ ๊ทผํ ์ ์๋ค. ์ด ๋ฐฉ์์ ์ด๊ธฐ ์ธ๋์ ๊ด๋ฆฌํ ์ถ์ํ๋ณด๋ค ๋๋ฒ๊น ๊ณผ ๋ฐํ์ ์ ์ด ๋ฒ์๋ฅผ ๋ํ ์ฃผ๋ฉฐ, JAX๋ PyTorch/XLA ์คํ ํ๊ฒฝ์ VM ์์ค์์ ์ง์ ๋ค๋ฃฐ ์ ์๊ฒ ํ๋ค.
๋์ ํ๋ฆ:
1. TPU VM์ด ๋ฌผ๋ฆฌ ํธ์คํธ์ ์์ฑ๋๋ค.
2. ์ฌ์ฉ์๊ฐ SSH๋ก TPU VM์ ์ ์ํ๋ค.
3. XLA ์ปดํ์ผ๋ฌ๊ฐ ๋ชจ๋ธ์ TPU ์นฉ์ ์ต์ ํํ๋ค.
4. TPU ์นฉ์ด HBM์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ์ฐ์ฐ์ ์ํํ๋ค.
5. ๊ฒฐ๊ณผ๊ฐ TPU VM์ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ก๋๋ค.
๋์ ์๋ฆฌ
TPU ์นฉ ๋ด๋ถ ๊ตฌ์กฐ
TPU ์นฉ ํ๋๋ ํ๋ ์ด์ TensorCore๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ TensorCore๋ MXU, ๋ฒกํฐ ์ ๋, ์ค์นผ๋ผ ์ ๋์ ํฌํจํ๋ค. TPU v4์ v5p๋ ์นฉ๋น 2๊ฐ์ TensorCore๋ฅผ, TPU v6e๋ ์นฉ๋น 1๊ฐ์ TensorCore๋ฅผ, TPU7x๋ ์นฉ๋น 2๊ฐ์ TensorCore๋ฅผ ์ ๊ณตํ๋ค. SparseCore๋ TPU v4๊ฐ ์๋๋ผ v5p ์ดํ ์ธ๋์์ ๋ฑ์ฅํ๋ค.
๋ฐ์ดํฐ ํ๋ฆ:
1. ํธ์คํธ(Host) CPU๊ฐ TPU์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.
2. TPU๊ฐ HBM์์ ๊ฐ์ค์น๋ฅผ MXU์ ๋ก๋ํ๋ค.
3. ์
๋ ฅ ๋ฐ์ดํฐ๊ฐ ํ ๋จ์๋ก MXU์ ์คํธ๋ฆฌ๋ฐ๋๋ค.
4. systolic array ๋ด์์ ๊ณฑ์
-๋์ ์ฐ์ฐ์ด ํ์ดํ๋ผ์ธ์ผ๋ก ์ํ๋๋ค.
5. ๊ฒฐ๊ณผ๊ฐ HBM์ ์ ์ฅ๋๊ฑฐ๋ ์ถ๋ ฅ ํ๋ก ์ ๋ฌ๋๋ค.
Pod ์ค์ผ์ผ ์ํคํ ์ฒ
๋๊ท๋ชจ ๋ชจ๋ธ ํ๋ จ์ ์ํด ์ฌ๋ฌ TPU ์นฉ์ด ICI ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋์ด Pod๋ฅผ ํ์ฑํ๋ค. TPU v4, v5p, TPU7x ๊ฐ์ ๋ํ Pod ์ธ๋๋ ํ๋ธ ๋ด๋ถ์์๋ ์ง์ ๋งํฌ๋ฅผ ์ฌ์ฉํ๊ณ , ํ๋ธ ๊ฐ ์ฐ๊ฒฐ์๋ OCS๋ฅผ ์ฌ์ฉํด ๋๊ท๋ชจ 3D ํ ํด๋ก์ง๋ฅผ ๊ตฌ์ฑํ๋ค.
ํ ํด๋ก์ง ์์:
- ๋จ์ผ ํธ์คํธ: TPU v7 ๊ธฐ์ค 4๊ฐ ์นฉ์ด ํ๋์ ํธ์คํธ์ ์ฐ๊ฒฐ
- ๋ค์ค ํธ์คํธ: ์ฌ๋ฌ ํธ์คํธ์ ์นฉ์ด ICI๋ก ์ฐ๊ฒฐ
- Multislice: ์ฌ๋ฌ Pod๊ฐ DCN(Data Center Network)์ผ๋ก ์ฐ๊ฒฐ๋์ด ์ด๋๊ท๋ชจ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ง์
3D ํ ํด๋ก์ง:
- TPU v4/v5p๋ 3D ํ ํด๋ก์ง(AรBรC)๋ฅผ ์ง์
- 64 ์นฉ ์ด์์ผ ๋ A, B, C๋ 4์ ๋ฐฐ์์ด์ด์ผ ํจ
- ์: 4ร4ร4 = 64 ์นฉ (1 cube), 8ร8ร8 = 512 ์นฉ
ICI Resiliency
ICI Resiliency๋ ๊ดํ ๋งํฌ์ OCS์ ์ค๋ฅ๋ฅผ ๊ฒฌ๋๋ ๊ธฐ๋ฅ์ผ๋ก, TPU v4, v5p, TPU7x์ ํ๋ธ๊ธ ์ด์ ์ฌ๋ผ์ด์ค์์ ๊ธฐ๋ณธ ํ์ฑํ๋๋ค. ICI ์ฐ๊ฒฐ์ด ๊ดํ OCS๋ ๊ดํ ICI ์ค๋ฅ๋ฅผ ์ฐํํ์ฌ ๋ผ์ฐํ ๋ ์ ์์ด ์ฌ๋ผ์ด์ค์ ์ค์ผ์ค๋ง ๊ฐ๋ฅ์ฑ์ด ํฅ์๋์ง๋ง, ์ผ์์ ์ผ๋ก ICI ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
Multislice ๋ณ๋ ฌ ์ฒ๋ฆฌ
Multislice๋ ์ฌ๋ฌ ์ฌ๋ผ์ด์ค๋ฅผ ๊ทธ๋ฃนํํ์ฌ ICI์ ๋ฒ์๋ฅผ ๋์ด ํ์ฅํ๋ ๊ธฐ์ ์ด๋ค. ๊ฐ ์ฌ๋ผ์ด์ค ๋ด ๋ฐ์ดํฐ๋ ICI๋ก ์ ์ก๋๋ฉฐ, ์ฌ๋ผ์ด์ค ๊ฐ ๋ฐ์ดํฐ๋ DCN์ผ๋ก ์ ์ก๋๋ค. ์ด๋ฅผ ํตํด ๋จ์ผ ์ฌ๋ผ์ด์ค๊ฐ ์์ฉํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ TPU ์ฝ์ด๋ฅผ ํ๋์ ์์ ์ ์ฌ์ฉํ ์ ์๋ค.
์ฅ๋จ์
์ฅ์
| ์ฅ์ | ์ค๋ช |
|---|---|
| ๋์ ํ๋ ฌ ์ฐ์ฐ ํจ์จ | systolic array๋ก ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ต์ํ, ์๋์ง ํจ์จ ๊ทน๋ํ |
| ๋๊ท๋ชจ Pod ํ์ฅ | ICI ๋คํธ์ํฌ๋ก ์์ฒ ์นฉ๊น์ง ํ์ฅ ๊ฐ๋ฅ |
| bfloat16 ์ง์ | FP32์ ๋์ผํ ๋์ ๋ฒ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ |
| ๊ดํ์ ํ ํด๋ก์ง ์ฌ๊ตฌ์ฑ | OCS๋ฅผ ํตํ ๋์ ์ฐ๊ฒฐ ์ต์ ํ |
| SparseCore | ์ถ์ฒ ๋ชจ๋ธ ๋ฑ ํฌ์ ์ฐ์ฐ ๊ฐ์ |
| ๋น์ฉ ํจ์จ์ฑ | Google Cloud์์ ์๊ฐ์ ๊ณผ๊ธ์ผ๋ก ๋๊ท๋ชจ ํ๋ จ ๋น์ฉ ์ ๊ฐ |
| JAX/XLA ํตํฉ | ์ํ์ ์ผ๋ก ์๋ฐํ ํ๋ ์์ํฌ์์ ์ํํ ํตํฉ |
๋จ์
| ๋จ์ | ์ค๋ช |
|---|---|
| Google Cloud ์ ์ฉ | ํ๋์จ์ด ๊ตฌ๋งค ๋ถ๊ฐ, ํด๋ผ์ฐ๋ ์ ๊ทผ์ฑ ์ ํ |
| ์ํํธ์จ์ด ์ํ๊ณ ์ ํ | CUDA ๋๋น ํ๋ ์์ํฌ/๋๊ตฌ ๋ถ์กฑ |
| ๋ฒ์ฉ ์ฐ์ฐ ๋ถ๊ฐ | ํ๋ ฌ ์ฐ์ฐ ์ด์ธ์ ์ผ๋ฐ์ ์ธ ์์ ์ฒ๋ฆฌ ์ด๋ ค์ |
| ์ด๊ธฐ ํฌ์ ๋น์ฉ | ๋๊ท๋ชจ Pod ์ฌ์ฉ ์ ๋์ ํด๋ผ์ฐ๋ ๋น์ฉ |
| ์ข ์์ฑ | Google ํ๋ซํผ์ ๋ํ ๋์ ์์กด๋ |
| PyTorch ์ง์ ์ ํ | PyTorch/XLA๋ฅผ ํตํ ๊ฐ์ ์ง์, ๋ค์ดํฐ๋ธ CUDA ์ง์ ๋ถ์กฑ |
๊ด๋ จ ๊ธฐ์
ํ๋์จ์ด ๊ด๋ จ
- Tensor Core Architecture: NVIDIA ํ ์ ์ฝ์ด ์ํคํ ์ฒ ์์ธ ๋ถ์
- AI ๊ฐ์๊ธฐ ๊ฐ์: GPU/TPU/NPU ๋ถ๋ฅ ์ฒด๊ณ ๋ฐ ๋น๊ต
- ํผํฉ ์ ๋ฐ๋ ํ๋์จ์ด: FP8, BF16, FP4 ํผํฉ ์ ๋ฐ๋ ๊ธฐ์
- HBM Generation Comparison: HBM ๋ฉ๋ชจ๋ฆฌ ๊ธฐ์ ๋น๊ต
์ํํธ์จ์ด ๊ด๋ จ
- Google JAX: TPU ์ต์ ํ ์ํ ํ๋ ์์ํฌ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์
- TensorFlow/XLA: TPU/GPU์ฉ ์๋ ์ปดํ์ผ๋ฌ
- PyTorch/XLA: PyTorch์ TPU ์ง์ ๋ ์ด์ด
- OpenXLA: TPU/GPU ํตํฉ ์ปดํ์ผ๋ฌ ์ธํฐํ์ด์ค
์ฐธ๊ณ ๋ฌธํ
- Jouppi et al., "In-Datacenter Performance Analysis of a Tensor Processing Unit," ISCA 2017
- Jouppi et al., "In-Datacenter Performance Analysis of a Tensor Processing Unit," ISCA 2017
- Jouppi et al., "A Domain-Specific Supercomputer for Training Deep Neural Networks," Communications of the ACM, 2021
- Jouppi et al., "TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning with Hardware Support for Embeddings," ISCA 2023
- Google Cloud TPU Documentation, "TPU architecture" (2026)
- Google Cloud TPU Documentation, "TPU v5p" (2026)
- Google Cloud TPU Documentation, "TPU v6e" (2026)
- Google Cloud TPU Documentation, "TPU7x (Ironwood)" (2026)
ํต์ฌ ์ ๋ฆฌ
- TPU๋ systolic array ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ต์ํํ๊ณ ๋๊ท๋ชจ ํ๋ ฌ ์ฐ์ฐ์ ์๋์ง ํจ์จ์ ๊ทน๋ํํ๋ Google์ AI ์ ์ฉ ASIC์ด๋ค.
- bfloat16 ํฌ๋งท์ FP32์ ๋์ผํ ๋์ ๋ฒ์๋ฅผ ์ ์งํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ๋ฐ์ผ๋ก ์ค์ฌ TPU์ ์ฐ์ฐ ํจ์จ์ ๋์ธ๋ค.
- ICI(Inter-Chip Interconnect)์ ๊ดํ์ ํ๋ก ์ค์์น(OCS)๋ฅผ ํตํด Pod ์์ค์์ ์์ฒ ์นฉ๊น์ง ํ์ฅํ์ฌ ์ด๋๊ท๋ชจ ๋ชจ๋ธ ํ๋ จ์ ์ง์ํ๋ค.
- TPU7x(Ironwood)๋ 192GB HBM3e์ 7.38 TB/s ๋์ญํญ์ ์ ๊ณตํ๋ฉฐ, ์นฉ๋น 2,307 TFLOPS(BF16)์ 9,216์นฉ Pod ํ์ฅ์ ์ง์ํ๋ค.
- TPU๋ Google Cloud ์ ์ฉ์ด๋ผ๋ ์ ๊ทผ์ฑ ์ ํ์ด ์์ง๋ง, ๋๊ท๋ชจ ํ๋ จ์์์ ๋น์ฉ ํจ์จ์ฑ๊ณผ ํ์ฅ์ฑ์ผ๋ก ๊ฒฝ์๋ ฅ์ ์ ์งํ๊ณ ์๋ค.