Output/Weight Stationary
๊ฐ์
Output Stationary๊ณผ Weight Stationary๋ ์์คํ ๋ฆญ ์ด๋ ์ด(Systolic Array)์์ ํ๋ ฌ ๊ณฑ์ (GEMM) ์ฐ์ฐ ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ํ๋์จ์ด ์์์ ๊ณ ์ ์ํฌ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ ๊ฐ์ง ํต์ฌ ๋ฐ์ดํฐ ํ๋ฆ(Data Flow) ์ ๋ต์ด๋ค. ์์คํ ๋ฆญ ์ด๋ ์ด๋ ๋ณ๋ ฌ ์ปดํจํ ์ํคํ ์ฒ์ ์ผ์ข ์ผ๋ก, ๋ฐ์ดํฐ๊ฐ ์ธ์ ํ ์ฒ๋ฆฌ ์์(PE) ์ฌ์ด์์ ๊ท์น์ ์ผ๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ํ๋ฅด๋ฉฐ ์ฐ์ฐ์ด ์ํ๋๋ค. ์ฌ์ฅ์ ํํ๊ณผ ์ ์ฌํ ๋ฐ์ดํฐ ํ๋ฆ ๋ฐฉ์์์ ์ด๋ฆ์ด ์ ๋๋์๋ค.
Output Stationary์ ๊ฒฐ๊ณผ ํ๋ ฌ์ ์์๊ฐ ๊ฐ PE์ ๊ณ ์ ๋์ด ๋์ ๋๋๋ก ์ค๊ณํ๋ฉฐ, Weight Stationary์ ๊ฐ์ค์น(๊ฐ์ค์น ํ๋ ฌ์ ์์)๊ฐ PE์ ๋ฏธ๋ฆฌ ๋ก๋๋ ํ ๊ณ ์ ๋ ์ฑ ์ ๋ ฅ ๋ฐ์ดํฐ๋ง ํ๋ฅด๋๋ก ์ค๊ณํ๋ค. ๋ ์ ๋ต ๋ชจ๋ ์ฐ์ฐ ์ฌ์ฌ์ฉ(Operand Reuse)์ ๊ทน๋ํํ์ฌ ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ฉฐ, ์ค์ AI ๊ฐ์๊ธฐ(Google TPU, NVIDIA Tensor Core ๋ฑ)์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
ํต์ฌ ๊ฐ๋
์์คํ ๋ฆญ ์ด๋ ์ด ๊ธฐ๋ณธ ๊ตฌ์กฐ
์์คํ ์ด๋ ์ด๋ ๊ฒฉ์ํ์ผ๋ก ๋ฐฐ์น๋ ์ฒ๋ฆฌ ์์(PE) ๋คํธ์ํฌ๋ก ๊ตฌ์ฑ๋๋ค. ๊ฐ PE๋ ๊ณฑ์ -๋์ฐ(MAC: Multiply-Accumulate) ์ ๋์ ํฌํจํ๋ฉฐ, ์ธ์ PE์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
- PE(Processing Element): ๊ณฑ์ ๊ณผ ๋ง์ ์ ์ํํ๋ ๊ธฐ๋ณธ ์ฐ์ฐ ๋จ์
- ๋ฐ์ดํฐ ํ๋ฆ ๋ฐฉํฅ: ์ ๋ ฅ ํ๋ ฌ์ ํ์ด ์โ์๋๋ก, ์ด์ด ์ขโ์ฐ๋ก ํ๋ฆ
- ์๊ณ ๋๊ธฐํ: ๋ชจ๋ PE๊ฐ ๋์ผํ ํด๋ญ์ ์ํด ๋์ (systolic = ๊ท์น์ )
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ต์ํ: ๋ฐ์ดํฐ๊ฐ PE ๊ฐ์์ ์ ๋ฌ๋๋ฏ๋ก ๊ธ๋ก๋ฒ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํฌ๊ฒ ๊ฐ์
Output Stationary ์๋ฆฌ
Output Stationary์์ ๊ฒฐ๊ณผ ํ๋ ฌ C์ ๊ฐ ์์ C[i][j]๋ ํน์ PE์ ๊ณ ์ ๋์ด ๊ณ์ฐ๋๋ค. ์ ๋ ฅ ํ๋ ฌ A์ ์์์ B์ ์์๊ฐ PE๋ฅผ ํต๊ณผํ๋ฉด์ ๋์ ์ฐ์ฐ์ด ์ํ๋๋ค.
๋์ ํ๋ฆ:
PE[i][j] ์ด๊ธฐ ์ํ: accumulator = 0
ํด๋ญ 0: PE[0][0]์ A[0][0] ร B[0][0] ์์ โ accumulator += A[0][0] ร B[0][0]
ํด๋ญ 1: PE[0][0]์ A[0][1] ร B[1][0] ์์ โ accumulator += A[0][1] ร B[1][0]
...
ํด๋ญ K-1: PE[0][0]์ A[0][K-1] ร B[K-1][0] ์์ โ C[0][0] = accumulator ์์ฑ
๊ฐ PE๋ K๋ฒ์ ํด๋ญ ๋์ ๋์ ์ฐ์ฐ์ ์ํํ ํ, ์์ฑ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
๋ฐ์ดํฐ ํ๋ฆ:
- A์ ํ: ์์์ ์๋๋ก PE๋ฅผ ํต๊ณผ (๊ฐ ํ์ด ํ๋์ ํด๋ญ ์ง์ฐ ํ ํ์ ํ์ผ๋ก ์ ๋ฌ)
- B์ ์ด: ์ข์์ ์ฐ๋ก PE๋ฅผ ํต๊ณผ (๊ฐ ์ด์ด ํ๋์ ํด๋ญ ์ง์ฐ ํ ์ฐ์ธก ์ด๋ก ์ ๋ฌ)
- C[i][j]: PE[i][j]์ ๊ณ ์ , K ํด๋ญ ํ ์ถ๋ ฅ
Weight Stationary ์๋ฆฌ
Weight Stationary์์๋ ๊ฐ์ค์น(๋ณดํต ํ๋ ฌ B ๋๋ ํํฐ ๊ฐ์ค์น)๊ฐ ๊ฐ PE์ ๋ฏธ๋ฆฌ ๋ก๋๋๊ณ ๊ณ ์ ๋๋ค. ์ ๋ ฅ ๋ฐ์ดํฐ(ํ๋ ฌ A)์ ๋์ ๊ฒฐ๊ณผ(๋ถ๋ถ ํฉ)๋ง์ด PE ์ฌ์ด๋ฅผ ํ๋ฅธ๋ค.
๋์ ํ๋ฆ:
์ด๊ธฐ ๋จ๊ณ: ๋ชจ๋ PE์ ๊ฐ์ค์น B[k][j]๋ฅผ ์ฌ์ ๋ก๋
ํด๋ญ 0: PE[0][0]์ A[0][0] ์์ โ partial_sum += B[0][0] ร A[0][0]
ํด๋ญ 1: PE[0][0]์ A[0][1] ์์ โ partial_sum += B[0][1] ร A[0][1]
...
Weight Stationary์ ํต์ฌ ์ฅ์ ์ ๊ฐ์ค์น๋ฅผ ํ ๋ฒ ๋ก๋ํ๋ฉด ์ฌ๋ฌ ์ ๋ ฅ์ ๋ํด ์ฌ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ด๋ค. ํนํ ์ถ๋ก (Inference) ๋จ๊ณ์์ ๋์ผํ ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ณต ์ฐ์ฐ์ ์ ๋ฆฌํ๋ค.
๋ฐ์ดํฐ ํ๋ฆ:
- ๊ฐ์ค์น B: PE์ ๊ณ ์ (์ด๊ธฐ ๋ก๋ ํ ๋ณ๊ฒฝ ์์)
- ์ ๋ ฅ A: ์์์ ์๋๋ก ํ๋ฆ
- ๋ถ๋ถ ํฉ(partial sum): ์ข์์ ์ฐ๋ก ํ๋ฆ
๋น๊ต/๋ถ์
๋ ์ ๋ต ๋น๊ตํ
| ํญ๋ชฉ | Output Stationary | Weight Stationary |
|---|---|---|
| ๊ณ ์ ์์ | ๊ฒฐ๊ณผ ํ๋ ฌ C | ๊ฐ์ค์น ํ๋ ฌ B |
| ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ํจํด | A์ B๊ฐ PE๋ฅผ ํต๊ณผ | A๋ง PE๋ฅผ ํต๊ณผ (B ๊ณ ์ ) |
| ์ถ๋ ฅๆนๅผ | K ํด๋ญ ํ PE์์ ์ง์ ์ถ๋ ฅ | ์ฐ์ธก ์ด์์ ์ถ๋ ฅ |
| ์ฐ์ฐ ์ฌ์ฌ์ฉ | A์ B์ ๊ฐ ์์๊ฐ ์ฌ๋ฌ PE์์ ์ฌ์ฌ์ฉ | B๊ฐ ๋์ผ ์ ๋ ฅ์ ๋ํด ์ฌ๋ฌ ๋ฒ ์ฌ์ฌ์ฉ |
| ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ | A์ B๋ฅผ ์คํธ๋ฆฌ๋ฐ์ผ๋ก ๊ณต๊ธ | A๋ง ์คํธ๋ฆฌ๋ฐ์ผ๋ก ๊ณต๊ธ, B๋ ์ด๊ธฐ ๋ก๋ 1ํ |
| ์ ํฉ ์ํฌ๋ก๋ | ๋๊ท๋ชจ ํ๋ ฌ ๊ณฑ์ (ํ์ต/์ถ๋ก ๋ชจ๋) | ์ถ๋ก , ๊ฐ์ค์น ์ฌ์ฌ์ฉ์ด ๋ง์ ์ํฌ๋ก๋ |
| ํ๋์จ์ด ๋ณต์ก๋ | ๊ฒฐ๊ณผ ์ถ๋ ฅ ๋ผ์ฐํ ํ์ | ๊ฐ์ค์น ๋ก๋ ๋คํธ์ํฌ ํ์ |
| ๋ํ ์ ์ฉ | Google TPU (v1~v5) | NVIDIA Tensor Core (์จ์ดํธ ์คํธ๋ฆฌ๋ฐ) |
๋ฉ๋ชจ๋ฆฌ ๋์ญํญ ๋ถ์
NรN ํ๋ ฌ ๊ณฑ์ ์์ ๋ ์ ๋ต์ ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๋์ ๋น๊ตํ๋ฉด:
Output Stationary:
- A ํ๋ ฌ: Nยฒ ์์ ์คํธ๋ฆฌ๋ฐ ์
๋ ฅ (์ฌ์ฌ์ฉ์ผ๋ก PE ๊ฐ ์ ๋ฌ)
- B ํ๋ ฌ: Nยฒ ์์ ์คํธ๋ฆฌ๋ฐ ์
๋ ฅ
- C ํ๋ ฌ: Nยฒ ์์ ์ถ๋ ฅ
- ์ด ์ธ๋ถ ์ ๊ทผ: O(3Nยฒ) (A, B, C ๊ฐ๊ฐ Nยฒ)
Weight Stationary:
- A ํ๋ ฌ: Nยฒ ์์ ์คํธ๋ฆฌ๋ฐ ์
๋ ฅ
- B ํ๋ ฌ: Nยฒ ์์ ์ด๊ธฐ ๋ก๋ (1ํ)
- C ํ๋ ฌ: Nยฒ ์์ ์ถ๋ ฅ
- ์ด ์ธ๋ถ ์ ๊ทผ: O(2Nยฒ + Nยฒ ์ด๊ธฐ ๋ก๋)
Weight Stationary์ B์ ์ด๊ธฐ ๋ก๋ ๋น์ฉ์ ์ ์ธํ๋ฉด ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ๋ ์ ์ผ๋, B์ ํฌ๊ธฐ๊ฐ ์๊ณ A์ ์ฌ์ฌ์ฉ๋ฅ ์ด ๋์ ๊ฒฝ์ฐ์ ์ ๋ฆฌํ๋ค.
ํ๋์จ์ด ์์ ํ์ฉ ๋น๊ต
| ์์ | Output Stationary | Weight Stationary |
|---|---|---|
| PE๋น ๊ณฑ์ ๊ธฐ | 1๊ฐ MAC | 1๊ฐ MAC |
| PE๋น ๋์ฐ๊ธฐ | 1๊ฐ (๊ฒฐ๊ณผ ์ ์ฅ) | 1๊ฐ (๋ถ๋ถ ํฉ ์ ์ฅ) |
| PE๋น ๋ ์ง์คํฐ | ๊ฒฐ๊ณผ ๋์ฐ + ์ ๋ ฅ ๋ฒํผ | ๊ฐ์ค์น ์ ์ฅ + ์ ๋ ฅ ๋ฒํผ |
| ์ธํฐ์ปค๋ฅํธ | ๋ฉ์(mesh) ๋๋ ํธ๋ฆฌ(tree) | ๋ฉ์(mesh) ๋๋ ๋ฒ์ค |
| ์ ์ด ๋ณต์ก๋ | ๋์ (์ถ๋ ฅ ๋ผ์ฐํ ๊ด๋ฆฌ) | ์ค๊ฐ (๊ฐ์ค์น ๋ก๋ ๊ด๋ฆฌ) |
๋์ ์๋ฆฌ
4ร4 Output Stationary ์์
2ร2 ํ๋ ฌ ๊ณฑ์ C = A ร B์์ 4ร4 ์์คํ ๋ฆญ ์ด๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์.
A = [a00 a01] B = [b00 b01] C = [c00 c01]
[a10 a11] [b10 b11] [c10 c11]
ํด๋ญ๋ณ ๋์ (2ร2 ๋ฐฐ์ด):
| ํด๋ญ | PE[0][0] ๋์ | PE[0][1] ๋์ | PE[1][0] ๋์ | PE[1][1] ๋์ |
|---|---|---|---|---|
| 0 | acc += a00รb00 | - | - | - |
| 1 | acc += a01รb10 | acc += a00รb01 | acc += a10รb00 | - |
| 2 | ์ถ๋ ฅ: c00 | acc += a01รb11 | acc += a11รb10 | acc += a10รb01 |
| 3 | - | ์ถ๋ ฅ: c01 | ์ถ๋ ฅ: c10 | acc += a11รb11 |
์ด ๊ณผ์ ์์ ๊ฐ ์์ a_{ij}, b_{kl}์ ์ ํํ ํ ๋ฒ๋ง ๊ธ๋ก๋ฒ ๋ฉ๋ชจ๋ฆฌ์์ ๋ก๋๋๋ค.
4ร4 Weight Stationary ์์
๋์ผํ 2ร2 ํ๋ ฌ ๊ณฑ์ ์์ Weight Stationary ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
์ด๊ธฐ ๋ก๋ ๋จ๊ณ:
PE[0][0] โ b00, PE[0][1] โ b01
PE[1][0] โ b10, PE[1][1] โ b11
์ฐ์ฐ ๋จ๊ณ (์ ๋ ฅ A๊ฐ ์์์ ์๋๋ก ํ๋ฆ):
| ํด๋ญ | ์ ๋ ฅ (์โ์๋) | PE[0][0] | PE[0][1] | PE[1][0] | PE[1][1] |
|---|---|---|---|---|---|
| 0 | a00 | partial = b00รa00 | partial = b01รa00 | - | - |
| 1 | a01 | partial += b00รa01 | partial += b01รa01 | partial = b10รa00 | partial = b11รa00 |
| 2 | a10 | partial += b00รa10 | partial += b01รa10 | partial += b10รa01 | partial += b11รa01 |
| 3 | a11 | ์ถ๋ ฅ: c00 | ์ถ๋ ฅ: c01 | partial += b10รa10 | partial += b11รa10 |
| 4 | - | - | - | ์ถ๋ ฅ: c10 | ์ถ๋ ฅ: c11 |
Weight Stationary์์๋ b_{kl}์ด PE์ ๊ณ ์ ๋์ด ์์ผ๋ฏ๋ก B์ ๊ธ๋ก๋ฒ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ์์ ํ ์ ๊ฑฐ๋๋ค.
TPU v1์์์ ์ ์ฉ
Google TPU v1๋ 256ร256 ์์คํ ๋ฆญ ์ด๋ ์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ, Weight Stationary ๋ฐฉ์์ ์ฑํํ๋ค:
- ๊ฐ์ค์น ๋ก๋: ๋ฉ๋ชจ๋ฆฌ์์ 256ร256 ๊ฐ์ค์น ๋ฉํธ๋ฆญ์ค๋ฅผ ํ ๋ฒ์ ์ด๋ ์ด์ ๋ก๋
- ์ ๋ ฅ ์คํธ๋ฆฌ๋ฐ: ํ์ฑ๊ฐ(activation)์ด ์์์ ์๋๋ก ์คํธ๋ฆฌ๋ฐ
- ์ถ๋ ฅ ์์ง: ์์ฑ๋ ๊ฒฐ๊ณผ๊ฐ ์๋์ชฝ์์ ์ถ๋ ฅ
- ์ฑ๋ฅ: 8-bit ์ ์ ๊ธฐ์ค 92 TOPS (Tera Operations Per Second)
- ์ ๋ ฅ ํจ์จ: Von Neumann ์ํคํ ์ฒ ๋๋น 30~100๋ฐฐ ๋์ ์๋์ง ํจ์จ
TPU๋ ๊ฐ์ค์น๋ฅผ ์ด๋ ์ด์ ๊ณ ์ ์ํด์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ ๋ณ๋ชฉ์ ๊ทน์ ์ผ๋ก ์ค์์ผ๋ฉฐ, ์ด๊ฒ์ด TPU์ ๋์ ์๋์ง ํจ์จ์ ํต์ฌ ์์ธ์ด๋ค.
์ฅ๋จ์
Output Stationary
์ฅ์ :
- ํ๋ ฌ ๊ณฑ์ ์ ๋ชจ๋ ์์๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐํ์ฌ ํ๋์จ์ด ํ์ฉ๋๊ฐ ๋์
- ๋๊ท๋ชจ ํ๋ ฌ ๊ณฑ์ ์ ์ ํฉํ๋ฉฐ, ๋ณ๋ ฌ์ฑ์ด ๊ทน๋ํ๋จ
- ์ถ๋ ฅ์ด ๊ฐ PE์์ ์ง์ ์์ฑ๋๋ฏ๋ก ์ถ๋ ฅ ๋ผ์ฐํ ์ด ๋จ์ํจ
- ํ์ต(Training)๊ณผ ์ถ๋ก (Inference) ๋ชจ๋์ ํ์ฉ ๊ฐ๋ฅ
๋จ์ :
- A์ B๋ฅผ ๋ชจ๋ ์คํธ๋ฆฌ๋ฐ์ผ๋ก ๊ณต๊ธํด์ผ ํ๋ฏ๋ก ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ด ํ์
- ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ค๋ณต ์ ๋ฌ์ด ๋ฐ์ํ ์ ์์
- ์ถ๋ ฅ ๋ฒํผ๋ง์ด ํ์ํ ์ ์์ (๋์ ์ถ๋ ฅ ๊ด๋ฆฌ)
Weight Stationary
์ฅ์ :
- ๊ฐ์ค์น๋ฅผ ํ ๋ฒ ๋ก๋ํ๋ฉด ์ฌ์ฌ์ฉ๋๋ฏ๋ก ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ด ํฌ๊ฒ ์ ๊ฐ
- ์ถ๋ก ๋จ๊ณ์์ ๋์ผํ ๊ฐ์ค์น๋ฅผ ๋ฐ๋ณต ์ฌ์ฉํ๋ ์ํฌ๋ก๋์ ์ต์
- ์๋์ง ํจ์จ์ด ๋์ (๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋์ง ์๋น๊ฐ ๊ฐ์ฅ ํฐ ๋น์ค)
- ๊ตฌํ์ด ์๋์ ์ผ๋ก ๋จ์
๋จ์ :
- ๊ฐ์ค์น ๋ก๋ ๋คํธ์ํฌ๊ฐ ํ์ (์ด๊ธฐ ๋ก๋ ๋น์ฉ)
- ๊ฐ์ค์น๊ฐ ํฌ๋ฉด PE๋น ๋ ์ง์คํฐ/๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐ
- ๊ฐ์ค์น ์ ๋ฐ์ดํธ๊ฐ ๋น๋ฒํ ํ์ต ์ํฌ๋ก๋์์๋ ๋ถ๋ฆฌ
- ๊ฐ์ค์น ํ๋ ฌ์ ํฌ๊ธฐ๊ฐ ์ด๋ ์ด ํฌ๊ธฐ์ ์ผ์นํ์ง ์์ผ๋ฉด ๋ก๋ฉ ํจ์จ์ด ์ ํ
๊ด๋ จ ๊ธฐ์
- Systems of Linear Equations: H. T. Kung, C. E. Leiserson, "Algorithms for VLSI processor arrays", Introduction to VLSI Systems, 1979
- Google TPU: Jouppi, N. P. et al., "In-Datacenter Performance Analysis of a Tensor Processing Unit", ISCA 2017
- NVIDIA Tensor Core: Mishra, A. et al., "Efficient Neural Network Inference with Mixed Precision and Tensor Cores", NVIDIA Technical Report, 2018
- Systolic Array for GEMM: Kung, H. T., "Why Systolic Architectures?", IEEE Computer, 1982
- Weight Stationary Optimization: Chen, Y. et al., "Eyeriss: An Energy-Efficient Accelerator for Deep Neural Networks", ISCA 2016
ํต์ฌ ์ ๋ฆฌ
- Output Stationary์ ๊ฒฐ๊ณผ ํ๋ ฌ์ ๊ฐ ์์๋ฅผ ํน์ PE์ ๊ณ ์ ์์ผ ๋์ ์ฐ์ฐ์ ์ํํ๋ ์ ๋ต์ผ๋ก, ๋๊ท๋ชจ GEMM์ ์ ํฉํ๋ค.
- Weight Stationary์ ๊ฐ์ค์น๋ฅผ PE์ ์ฌ์ ๋ก๋ํ์ฌ ๊ณ ์ ์ํค๊ณ ์ ๋ ฅ ๋ฐ์ดํฐ๋ง ์คํธ๋ฆฌ๋ฐํ๋ ์ ๋ต์ผ๋ก, ์ถ๋ก ์ํฌ๋ก๋์์ ์๋์ง ํจ์จ์ด ๋๋ค.
- ๋ ์ ๋ต ๋ชจ๋ ์ธ๋ถ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ต์ํํ์ฌ ์ฐ์ฐ ์ฌ์ฌ์ฉ์ ๊ทน๋ํํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ ์ ๊ฐ ํจํด์ด ๋ค๋ฅด๋ค.
- ์ค์ AI ๊ฐ์๊ธฐ(Google TPU, NVIDIA Tensor Core)์์๋ ์ํฌ๋ก๋ ํน์ฑ์ ๋ฐ๋ผ ์ ํฉํ ์ ๋ต์ ์ ํํ์ฌ ๊ตฌํํ๋ค.
- ์์คํ ๋ฆญ ์ด๋ ์ด๋ Von Neumann ์ํคํ ์ฒ์ ๋ณ๋ชฉ์ ๊ทน๋ณตํ๋ ํต์ฌ ๊ธฐ์ ๋ก, AI ์ถ๋ก ๊ณผ ํ์ต ๋ชจ๋์์ ์๋์ง ํจ์จ์ ํฌ๊ฒ ํฅ์์ํจ๋ค.