TL;DR
TPU는 넓은 벡터 레지스터와 온칩 스크래치패드를 가진 시퀀셜 아키텍처로서 HBM에서 VMEM으로의 명시적 전송과 전송-계산 오버랩이 성능 핵심이다. Helion은 PyTorch 스타일의 상위 수준 DSL로 작성한 코드를 Pallas로 컴파일하는 TPU 백엔드를 제공하여 Pallas 전문 지식 없이도 TPU 특화 커널을 생성할 수 있게 했다. Helion의 autotuner는 입력 형상별로 여러 코드 생성·파이프라이닝 전략을 탐색해 VMEM과 계산 자원을 최적으로 배분하며, 플래시 어텐션 워크로드에서 TPU v7 기준 838 TFLOPs(약 79% MFU)를 기록했다. 이 접근은 TPU와 GPU 간 커널 이식성을 유지하면서도 하드웨어 특화 최적화를 확보할 수 있음을 보여주나, 최종 성능을 얻기 위해서는 메모리 계층과 파이프라인 설계에 대한 이해가 여전히 필요하다.
섹션별 상세

- Helion이 생성한 플래시 어텐션 커널은 TPU v7에서 838 TFLOPs(하나의 텐서 코어 기준 약 79% MFU)를 달성했다. — TL;DR 및 Performance 관련 단락
용어 해설
- Pallas
- — Pallas는 Google이 제공하는 낮은 수준의 TPU 전용 DSL로서 레지스터와 메모리 계층을 직접 제어하는 코드 생성을 허용한다. Pallas는 메모리 전송과 연산을 명시적으로 오버랩하여 최대 성능을 낼 수 있게 설계되었으나 문법과 추상화 수준이 낮아 숙련된 개발자에게도 높은 진입 장벽이 존재한다. 따라서 상위 수준 DSL에서 효율적인 Pallas 코드를 생성하는 것이 TPU 성능을 실용적으로 활용하는 핵심 과제이다.
- VREGs
- — VREGs는 TPU의 가장 빠른 온칩 레지스터 계층으로, 벡터 연산 유닛과 MXU에 직접 데이터를 공급한다. VREGs는 레지스터 폭이 넓어 대규모 벡터/행렬 블록을 효율적으로 처리할 수 있으며, 레지스터 사용량과 레지스터 전송 타이밍이 파이프라이닝 성능을 결정한다. 커널은 VREGs에 데이터를 적시에 채워 계산 유닛의 유휴 시간을 최소화하도록 설계해야 한다.
- VMEM
- — VMEM은 TPU의 온칩 고속 스크래치패드 메모리로서 HBM과 VREGs 사이에서 중간 버퍼 역할을 한다. VMEM을 통해 대용량 데이터 블록을 빠르게 재사용할 수 있으며, HBM에서 VMEM으로의 비동기 복사와 VMEM에서 VREGs로의 전송 타이밍을 맞춰 계산과 통신을 오버랩해야 한다. 효과적인 VMEM 활용은 전체 파이프라인의 처리량과 자원 활용률을 결정한다.
- HBM
- — HBM은 칩 외부에 위치한 대용량 고대역폭 메모리로서 모델의 전체 파라미터와 대형 텐서를 저장하는 주요 저장소 역할을 한다. HBM에서 VMEM으로 데이터를 주기적으로 스트리밍하고, 이 전송을 계산과 겹치게 하여 전송 대기 시간을 숨기는 것이 성능 최적화의 핵심이다. HBM 대역폭 한계와 전송 지연은 커널 설계에서 반드시 고려해야 할 제약이다.
- Autotuning
- — Autotuning은 다양한 코드 생성 전략과 실행 파라미터를 자동으로 탐색하여 주어진 입력 형태에서 최적 성능을 내는 설정을 선택하는 기법이다. 입력 형태별로 파이프라이닝 스키마, 버퍼 배치, 연산 분할 방식을 달리해 VMEM과 계산 자원의 활용도를 극대화할 수 있으며, 탐색 결과는 런타임 성능을 크게 좌우한다. Helion은 코드 생성 단계에서 이러한 자동 탐색을 통해 TPU 특화 최적화를 달성한다.
기술
- PyTorch
- Helion
- Pallas
- TPU v7
활용 사례
- 성능 민감형 커널 작성에서 자동 튜닝 적용
- 비 Pallas 전문가의 TPU 커널 온보딩
- TPU와 GPU 간 커널 코드 이식성 유지
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.