나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-12-13 01:43:08

TPU


파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 열가소성 폴리우레탄(Thermoplastic Polyurethane)}}}에 대한 내용은 [[폴리우레탄]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[폴리우레탄#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[폴리우레탄#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
열가소성 폴리우레탄(Thermoplastic Polyurethane): }}}[[폴리우레탄]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[폴리우레탄#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[폴리우레탄#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}
파일:Google-TPU-v7.png파일:external/3.bp.blogspot.com/tpu-1.png
7세대 TPU 실물 알파고 실물

1. 개요2. 소프트웨어3. 사용
3.1. TPU Research Cloud(TRC)
4. 성능5. 제품6. 관련 문서

1. 개요

Tensor Processing Unit
텐서 처리 장치

구글에서 2016년 5월에 발표한 머신러닝을 위해 설계된 ASIC이다. 대규모 행렬 연산에 특화되어 있다. #

TPU의 설계는 구글이 브로드컴과 공동[1]으로 수행하고 있다.

2. 소프트웨어

TPU를 위한 소프트웨어로는 구글에서 오픈소스로 공개한 TensorFlow가 있고, PyTorch에서는 PyTorch/XLA로 TPU에서 작업을 수행할 수 있다. JAX를 사용할 수도 있다. 이들 라이브러리에서 작성된 모델은 XLA 그래프로 변환된 후 TPU 실행 파일로 컴파일, 실행된다.

3. 사용

Google Cloud PlatformCloud TPU를 통해 이용할 수 있다. Colab에서는 무료로 TPU v5e-1을 이용할 수 있고, Kaggle에서는 TPU v3-8과 v5e-8을 이용할 수 있다.[2]

현재 소비자가 구할 수 있는 TPU는 Edge TPU 기반의 제품인 코랄 보드[3] 일체형 보드에서 부터 PCIe/M.2 카드까지 다양한 폼펙터로 제공된다. 다만 구글이 데이터센터용으로 쓰는 TPU가 아닌 저전력 버전 기반이라 성능은 다르다. 또한 텐서플로 라이트를 지원한다는 게 특징.

NVIDIAGeForce 20부터 TPU와 비슷한 기능을 하는 Tensor Core를 일반 제품군에도 내장하기 시작했다. 주 용도는 다름 아닌 레이트레이싱과 DLSS 안티에일리어싱 보조용이며, 당연히 게임 용도뿐 아니라 머신 러닝 등의 용도에도 큰 도움을 준다.

AMD도 Instinct MI100부터 비슷한 기능의 Matrix Core을 내장하기 시작했다. 다만 이쪽은 일반 제품군에는 내장되지 않는 중. RDNA 3의 RX 7000번대부터는 내장될 수도 있다는 관측이 있었고, 실제로 비슷한 역할인 AI 매트릭스 액셀러레이터가 내장되었다.

2023년 모건 스탠리가 발간한 리포트 등 각종 통계에 의하면 NVIDIA의 최신 칩셋인 A100 주요 고객 리스트에 구글은 없다.# 이를 통해 딥러닝 관련 워크로드 수행 분야에서는 TPU가 이미 엔비디아의 역할을 대부분 대체했다고 추정해볼 수 있다. 다만 구글 클라우드 플랫폼의 데이터 센터에는 엔비디아의 칩셋이 상당수 쓰이고 있으니 분야 혼동에 주의할 필요가 있다.

Apple이 개발한 생성형 인공지능인 Apple Intelligence의 경우 모델 학습에서 NVIDIA의 카드를 사용하지 않고 클라우드 방식으로 TPU를 사용한다.

최근 OpenAI에서도 자사 GPU 클러스터만을 사용하지 않고, 구글 TPU를 임대해 사용을 시작했다.#

9월 3일에는 엔비디아 칩 기반 소규모 클라우드 업체인 플루이드스택과 뉴욕 데이터센터에 TPU를 설치하는 계약을 맺었다는 소식이 알려졌다. 이는 클라우드 기반 타사 제공을 넘어선 첫 번째 TPU 외부 설치 개방 사례다.

이후 10월 23일에 Anthropic이 TPU 100만장을 도입해 1GW급 인프라를 구축한다는 소식을 전하며 첫 번째 대형수주에 성공했다.

11월 25일, Meta가 2027년부터 자사 데이터 센터에 구글의 TPU를 도입하는 방안을 검토 중이라는 소식이 전해졌다. 2026년부터 구글 클라우드를 통해 일부 칩을 임대하는 방식도 논의되고 있다고 한다. 이는 엔비디아 위주의 AI 칩 공급망을 다변화하려는 빅테크의 전략 변화로 해석되며, 실제로 이 소식이 알려지자 엔비디아의 주가가 하락하고 알파벳의 주가가 상승하는 등 시장의 주목을 받았다. 참고로 구글은 이 시점에 맞춰 7세대 TPU인 '아이언우드(Ironwood)'를 공개하며 외부 공급 확대에 박차를 가하고 있다. #

3.1. TPU Research Cloud(TRC)

TRC를 사용하면 연구 결과를 공유하는 조건으로 1달간 무료로 TPU를 사용할 수 있다. # 신청하면 수 시간 내로 승인 메일이 오고, 추가로 내용을 제출하면 주어진 제공량을 Cloud TPU에서 무료로 사용할 수 있다. TRC 팀에 문의하면 더 긴 기간이나 더 많은 제공량을 사용할 수도 있다.

4. 성능

구글의 "TPU의 작동 원리"

파일:How to TPU works-CPU.gif

이건 CPU의 동작 원리를 단순하게 표현한것이다.

파일:How to TPU works-GPU.gif

GPU는 CPU의 코어를 매우 많이 늘린것으로 생각하면 된다. 당연히 갯수가 많으니 CPU보다는 빠르겠지만, 코어 1개당 동작 원리는 CPU랑 다를게 전혀 없다.

이 둘의 공통적인 문제는 메모리 엑세스 속도가 연산 속도보다 느려 폰노이만 병목 현상이 발생한다는 것이다.
주기적으로 메모리에서 계산할 데이터를 가져오고, 계산이 끝나면 데이터를 메모리에 저장하고를 중간 중간 반복해줘야 하기 때문인데, 이 방식이 병목을 발생시키는 원흉이 되어버린것.

이 현상을 해결하기 위해, TPU는 오직 행렬 연산만을 목적으로 수천개의 누산기를 직접 연결해서 대규모 행렬을 형성하는 시스톨릭 배열 아키텍쳐를 사용한다.

파일:How to TPU works-TPU-1.gif
먼저, 행렬 계산을 위해 메모리의 매개변수를 행렬 곱셈 단위로 로드해 준비를 한다.

파일:How to TPU works-TPU-2.gif
그 다음, TPU가 메모리에서 데이터를 불러오고, 곱셈을 실행한 결과를 다음 누산기로 전달한다. 출력은 데이터와 매개변수 간의 모든 곱셈 결과의 합이니, 연산중에 메모리를 엑세스할 일이 없다.

한마디로, 계산 과정을 메모리에 넣지 않고 끝까지 연산해서 병목이 생길 여지를 완전히 배제해 연산 속도를 극대화 시켜 CPU나 GPU랑은 비교도 안되는 매우 높은 연산속도가 가능한것이라 볼 수 있다.

또한 TPU는 TPU Pod로 쉽게 확장되도록 설계되었다. TPU Pod는 서로 고속으로 연결된 TPU 기기의 모음으로, 이를 통해 TPU를 사용한 학습을 선형적으로 확장할 수 있다. 실제로 구글은 50,944개의 TPU v5e 칩으로 학습을 실행하기도 했다. #

5. 제품

v1 v2 v3 Edge v1 v4 v5e v5p v6e v7
공개 2016년 2017년 2018년 2018년 2021년 2023년 2023년 2024년 2025년
공정 28nm 16nm 16nm 7nm[4] 5nm 5nm 4nm 3nm
크기 331mm2 <625mm2 <700mm2 <400mm2 350mm2 700mm2 790mm2 ?mm2
클럭 700MHz 700MHz 940MHz 1050MHz 1750MHz 2040MHz 2060MHz ?MHz
메모리 8GiB DDR3 16GiB HBM 32GiB HBM 32GiB HBM 16 GiB HBM 95GiB HBM 32GiB HBM 192GiB HBM
메모리 대역폭 34GB/s 600GB/s 900GB/s 1.2TB/s 819 GB/s 2.8 TB/s 1.6 TB/s 7.2 TB/s
소비전력 75W 280W 220W 2W 170W 미공개 미공개 미공개 미공개
초당 연산 성능
(int8)
23 TOPs 92 TOPs 246 TOPs 4 TOPs 550 TOPs 394 TOPs 918 TOPs 1836 TOPs ? TOPs
초당 연산 성능
(bfloat16)
11.5 TFLOPs 46 TFLOPs 126 TFLOPs 2 TFLOPs 275 TFLOPs 197 TFLOPs 459 TFLOPs 918 TFLOPs ? TFLOPs
TOPS/W 0.31 0.16 0.56 2 1.62 미공개 미공개 미공개 미공개

6. 관련 문서


[1] 2023년 9월 구글이 브로드컴과의 TPU 설계 협력 계약을 종료한다는 루머가 돌자 브로드컴의 주가가 급락하기도 했으나 구글은 브로드컴과의 협력이 계속된다고 발표했다.# 다만 2025년 3월 기준으로는 미디어텍과 협력도 추진 중에 있다.[2] 단, 본인 얼굴을 등록하는 신원 인증 절차를 거쳐야 TPU 사용이 가능하다. 추가로, 1주일에 20시간씩만 사용이 가능하다.[3] 구글과 관계된 회사에서 제품화 했기 때문에 보통 구글 코랄 보드라고 부른다.[4] TSMC[5] 이 때문에 일부 서드파티 업체들은 Coral TPU를 M.2로 해서 병렬로 연결하는 식으로 상용 TPU제품을 만들어다 팔기도 했다.