๐Ÿง  Accelerator

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 ์•„ํ‚คํ…์ฒ˜

TPU 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 ๊ตฌ์กฐ

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 ์„ธ๋Œ€ ๋น„๊ต
ํ•ญ๋ชฉ 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 ์ง€์› ๋ถ€์กฑ

๊ด€๋ จ ๊ธฐ์ˆ 

ํ•˜๋“œ์›จ์–ด ๊ด€๋ จ

์†Œํ”„ํŠธ์›จ์–ด ๊ด€๋ จ

  • 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)

ํ•ต์‹ฌ ์ •๋ฆฌ

  1. TPU๋Š” systolic array ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋Œ€๊ทœ๋ชจ ํ–‰๋ ฌ ์—ฐ์‚ฐ์˜ ์—๋„ˆ์ง€ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” Google์˜ AI ์ „์šฉ ASIC์ด๋‹ค.
  2. bfloat16 ํฌ๋งท์€ FP32์™€ ๋™์ผํ•œ ๋™์  ๋ฒ”์œ„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์—ฌ TPU์˜ ์—ฐ์‚ฐ ํšจ์œจ์„ ๋†’์ธ๋‹ค.
  3. ICI(Inter-Chip Interconnect)์™€ ๊ด‘ํ•™์  ํšŒ๋กœ ์Šค์œ„์น˜(OCS)๋ฅผ ํ†ตํ•ด Pod ์ˆ˜์ค€์—์„œ ์ˆ˜์ฒœ ์นฉ๊นŒ์ง€ ํ™•์žฅํ•˜์—ฌ ์ดˆ๋Œ€๊ทœ๋ชจ ๋ชจ๋ธ ํ›ˆ๋ จ์„ ์ง€์›ํ•œ๋‹ค.
  4. TPU7x(Ironwood)๋Š” 192GB HBM3e์™€ 7.38 TB/s ๋Œ€์—ญํญ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์นฉ๋‹น 2,307 TFLOPS(BF16)์™€ 9,216์นฉ Pod ํ™•์žฅ์„ ์ง€์›ํ•œ๋‹ค.
  5. TPU๋Š” Google Cloud ์ „์šฉ์ด๋ผ๋Š” ์ ‘๊ทผ์„ฑ ์ œํ•œ์ด ์žˆ์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ ํ›ˆ๋ จ์—์„œ์˜ ๋น„์šฉ ํšจ์œจ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์œผ๋กœ ๊ฒฝ์Ÿ๋ ฅ์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋‹ค.