구글·메타, TorchTPU 오픈소스 공개

구글 클라우드는 PyTorch Conference 2026 당일, 메타 PyTorch 팀과 함께 개발한 TorchTPU를 GitHub에 오픈소스로 공개했다고 발표했다. 구글에 따르면 TPU는 이제 GPU, CPU와 마찬가지로 PyTorch의 네이티브 장치 옵션이 되며, 기존 코드를 거의 고치지 않고도 실행할 수 있다.

이번 발표문에는 구글 클라우드의 AI·컴퓨팅 인프라 부사장 Mark Lohmeyer와 엔지니어링 부사장 Bill Jia가 이름을 올렸다. 코드 저장소는 google-pytorch 조직 아래에 있고, 함께 나온 vLLM과 SGLang 백엔드는 각 프로젝트의 조직에 들어갔다.

한 번의 오픈소스, 줄줄이 연결된 프레임워크

TorchTPU는 eager 모드 디버깅을 지원하며, torch.compile을 거쳐 TPU 활용률을 높이고 메모리 부담을 줄일 수도 있다. 같은 날 연결된 상하위 프로젝트도 적지 않다.

  • 추론: vLLM과 SGLang에 각각 네이티브 PyTorch 백엔드가 생겼다. 전자는 연속 배칭, 양자화, 멀티칩 병렬을 지원하고, 후자는 RadixAttention으로 KV 캐시를 재사용한다. 레드햇, IBM과 함께 발표한 llm-d 1.0은 프리픽스 캐시를 고려한 라우팅과 프리필·디코드 분리를 맡는다.
  • 학습: TorchTitan은 Llama 3 70B/405B, Qwen 3 8B/32B, Qwen 3 235B(MoE), FLUX.1 12B 등의 모델을 검증했다. 강화학습 프레임워크 VeRL에는 TPU 백엔드와 GRPO 참조 레시피가 병합됐으며, 현재는 프리뷰 버전이다.
  • 생태계: Hugging Face Transformers v5는 device_map="tpu" 한 줄로 TPU에 모델을 불러올 수 있고, Transformers용으로 매일 밤 실행되는 TPU 지속적 통합도 구축됐다. Ray는 CPU, GPU, TPU를 하나의 파이프라인으로 묶을 수 있다.

구글이 제시한 성능 수치는 두 가지다. TorchTitan은 Qwen 3 8B에서 MFU 52%를 달성했고, 최대 8,192개의 Ironwood(TPU v7x)에서 거의 선형적으로 확장됐다. 파트너사 Zenteiq는 llm-d와 GKE를 함께 사용해 TPU v6e 1,000개당 하루 생성량을 14억 7천만 토큰에서 59억 7천만 토큰으로 늘렸고, 4배 이상 향상됐다고 한다. 두 수치 모두 구글 또는 파트너사가 직접 측정한 것이며, 발표문에는 재현에 필요한 전체 설정이 첨부돼 있지 않다.

메타가 함께한 이유

메타의 PyTorch 엔지니어링 디렉터 Jana van Greunen은 발표문에서 다음과 같이 말했다.

"We cannot be constrained by a single hardware architecture."
우리는 단일 하드웨어 아키텍처에 묶일 수 없다.

그는 TorchTPU가 이미 메타의 대규모 모델, 광고, 추천 시스템에서 "핵심 프로덕션 시나리오"를 뒷받침하고 있다고 언급했다. 실제로 TPU를 얼마나 쓰는지, 메타 전체 컴퓨팅에서 차지하는 비중이 어느 정도인지는 이번에 공개되지 않았다. Hugging Face, vLLM을 만든 Inferact, SGLang을 만든 RadixArk도 입장을 냈는데, 모두 "하드웨어 다양성"에 초점을 맞췄다.

같은 주, AWS도 성과를 내놨다

TorchTPU를 하루 전 AWS가 발표한 TorchNeuron과 나란히 놓고 보면, 두 회사가 같은 길을 가고 있음을 알 수 있다. TorchNeuron은 Trainium용 네이티브 PyTorch 백엔드로, Apache 2.0 라이선스로 공개됐으며 10월 20일부터 퍼블릭 베타다. Trainium2와 Trainium3을 지원하고, 사용자는 .to('neuron')만 쓰면 된다. 이쪽도 Transformers v5와 TorchTitan을 간판으로 내세웠고, 메타의 같은 PyTorch 엔지니어링 디렉터가 AWS에도 추천사를 썼다.

차이는 세부 사항에 있다. AWS는 테스트 기준을 공개했다. Hugging Face 모델 10만 개를 대상으로 블라인드 테스트를 했고, PyTorch 업스트림 테스트를 돌려 약 15만 4천 건의 결과를 얻었다. 이 가운데 약 3만 9천 건은 Neuron이 의도적으로 건너뛴 것으로, 희소 텐서와 동적 형상 등 첫 버전이 지원하지 않는 기능이 포함된다. 구글 쪽은 지원 목록만 나열했고, 어떤 연산자가 CPU로 대체되는지, 어떤 기능이 아직 빠져 있는지에 대해서는 같은 수준의 설명이 발표문에서 보이지 않는다.

두 회사 모두 PyTorch 커뮤니티가 최근 몇 년간 만들어 온 장치 중립 인터페이스, 예컨대 PrivateUse1 확장 지점과 torch.accelerator에 의존한다. 이전에 PyTorch 사용자가 TPU를 쓰려면 XLA 컴파일러를 거쳐 변환하는 PyTorch/XLA에 주로 의존했고, 디버깅 경험은 오랫동안 불만의 대상이었다. 이제 네이티브 백엔드로 바뀌면서 이전 장벽은 "코드를 고쳐야 한다"에서 "장치 이름만 바꾸면 된다"로 낮아졌다.

개발자에게 가장 현실적인 검증은 공식 검증 목록에 오르지 않은 모델들이다. TorchTPU 문서에 명시된 TPU 모델은 v6e와 Ironwood뿐이며, 그 이전 세대를 쓸 수 있는지, 성능은 어떤지에 대해 구글은 아직 밝히지 않았다. 함께 공개된 TPU 에이전트 플러그인도 아직 초기 프리뷰 단계다.

참고 출처: Google Cloud 공식 블로그, PyTorch 공식 블로그(TorchNeuron 발표), CocoLoop, TorchTPU GitHub 저장소. MFU와 처리량 수치는 구글 및 파트너사의 자체 측정 기준을 따른다.