개요
Tensor Processing Unit(TPU)은 Google이 머신러닝 계산을 가속하기 위해 설계한 전용 집적회로(ASIC) 계열이다. Cloud TPU 문서는 행렬 계산, 메모리와 가속기 연결을 머신러닝 작업의 핵심 요소로 설명한다.[1] TPU는 모든 계산을 자동으로 빠르게 만드는 범용 장치라기보다 특정 계산 형태와 소프트웨어 실행 방식에 맞춰 사용하는 가속기다.
행렬 계산과 소프트웨어의 관계
신경망의 많은 연산은 행렬 곱으로 표현된다. 전용 계산 장치가 이 연산을 효율적으로 처리하더라도, 입력 자료를 준비하고 장치로 보내는 과정이 느리면 전체 작업이 기다릴 수 있다. Cloud TPU는 XLA 컴파일과 연결되는 실행 환경을 설명한다.[1] 따라서 하드웨어 이름만 비교하기보다 사용하는 프레임워크, 지원 연산과 컴파일 경로를 함께 확인해야 한다.
GPU와 비교할 때 볼 조건
- 작업의 계산 형태: 큰 행렬 계산의 비중과 배치 구성은 어떤가?
- 소프트웨어: 현재 코드와 필요한 연산이 선택한 가속기 환경에서 실행되는가?
- 메모리: 모델 가중치·활성값·입력 배치를 담을 수 있는가?
- 자료 공급: 전처리와 저장소 읽기가 가속기의 계산 속도를 따라가는가?
- 운영: 사용할 수 있는 지역, 장치 확보, 코드 이전과 운영 비용은 어떤가?
GPU와 TPU 가운데 어느 쪽이 항상 더 싸거나 빠르다고 일반화할 수는 없다. 같은 모델, 자료, 배치와 품질 조건에서 전체 처리 시간과 비용을 비교해야 한다. 이 항목들은 ORBiS Tree의 실무적 비교 질문이며 특정 서비스의 벤치마크 결과가 아니다.
사례: 계산 장치가 기다리는 학습 작업
다음은 가상 사례다. 큰 모델을 학습하는데 장치의 계산 시간보다 자료 전처리 대기 시간이 길다고 하자. 장치를 더 많이 추가해도 전처리 과정이 그대로라면 전체 시간의 개선이 제한될 수 있다. 먼저 전처리, 자료 전송, 컴파일과 실제 연산의 시간을 나눠 기록한다. 그다음 입력 파이프라인과 배치를 조정하고 같은 조건에서 다시 측정한다.
세대 이름과 측정 결과를 구분하기
2017년의 초기 TPU 논문은 당시 데이터센터 추론 장치의 설계와 평가를 다룬다.[2] 그 결과를 이후의 모든 TPU 세대, 학습 작업이나 Cloud 요금에 그대로 적용할 수는 없다. Trillium 같은 세대 이름을 읽을 때도 해당 세대의 공식 사양·지원 환경과 실제 작업 조건을 확인해야 한다.
AI 뉴스에서 TPU가 등장하는 이유
Project Suncatcher처럼 새로운 계산 환경을 탐색하는 연구에서도 TPU가 등장한다. 특정 시험에서 하드웨어가 작동했다는 사실과 데이터센터 규모의 지속적인 운영이 검증됐다는 주장은 구분해야 한다. 추론에서는 첫 응답까지의 지연과 전체 처리량을, 학습에서는 목표 품질에 도달하는 시간과 비용을 기록하면 비교 목적이 더 분명해진다.
계산 예제: 자료 공급과 연산을 겹칠 때
가상 배치마다 자료 준비가 70ms, 장치 계산이 50ms라고 하자. 순차 실행이면 배치당 120ms다. 서로 다른 배치의 준비와 계산이 완전히 겹치고 추가 병목이 없다는 가정에서, 시작·종료 구간을 제외한 정상 상태의 배치 간격은 max(70, 50) = 70ms다. 계산만 25ms로 줄여도 max(70, 25) = 70ms로 자료 공급 병목이 남는다.
이는 실제 TPU 측정값이나 무조건 겹침이 가능하다는 약속이 아니다. 준비·전송·계산의 시간축을 측정하고 공급을 기다리는 시간을 확인한다. Cloud TPU 문서 ↗는 계산과 호스트·컴파일 실행의 관계를 설명한다.[1] 다른 가속기와 비교할 때도 같은 자료 파이프라인을 포함한다.
컴파일 시간을 짧은 작업에서 따로 세기
가상 첫 컴파일에 2초, 이후 배치에 20ms가 든다면 100배치 작업은 2 + 100×0.02 = 4초다. 5배치만 실행하면 2 + 5×0.02 = 2.1초다. 워밍업 뒤의 배치당 20ms만 보고 두 작업의 전체 실행 시간을 계산하지 않는다.
입력 shape와 자료형, 컴파일 캐시, 프레임워크와 버전을 남긴다. shape 변화의 지원과 재컴파일 동작은 실제 실행 경로에서 확인한다. 초기 TPU 논문 ↗의 데이터센터 추론 평가와 현재 학습·컴파일 환경은 구분해서 읽는다.[2] 장치 세대 이름만으로 코드 호환성이나 짧은 작업의 유리함을 확정하지 않는다.
분산 예제: 장치 네 개가 속도 네 배는 아니다
가상 작업 100ms 중 직렬 부분 20ms와 완전히 나눌 수 있는 부분 80ms가 있다고 하자. 네 장치에 병렬 부분을 이상적으로 나누면 20 + 80/4 = 40ms, 개선은 2.5배다. 추가 통신 10ms가 있다면 50ms, 개선은 2배다. 통신·배치 변경·동기화 조건을 가정한 예제이며 실제 분산 TPU 성능 수치가 아니다.
직렬 비중과 장치 간 이동·동기화, 배치가 바뀌면서 품질에 주는 영향을 함께 기록한다. 전문가 분산에서도 활성 계산이 적다는 사실과 전체 통신이 빠르다는 사실은 다르다. 장치 수를 늘린 효과는 같은 목표 품질과 자료 조건에서 측정한다.