TorchTPU에 HN이 꽂힌 한 줄, `device="tpu"`가 진짜 되느냐

HN은 Google의 TorchTPU 글을 또 하나의 인프라 홍보 포스트로 읽지 않았다. 댓글은 곧바로 아주 구체적인 질문으로 모였다. PyTorch 사용자가 초기화만 "tpu"로 바꾸면 정말 PyTorch처럼 느껴지느냐, 아니면 익숙한 이름 뒤에 TPU 전용 의식이 또 숨어 있느냐였다. 예전 PyTorch/XLA를 겪었던 사람들에겐 이 차이가 아주 크다.

Google이 내건 약속은 꽤 크다. 공식 글에 따르면 TorchTPU는 TPU에서 PyTorch를 native에 가깝게 돌리기 위한 새 엔지니어링 스택이다. 핵심 철학은 "Eager First"다. PyTorch의 PrivateUse1 인터페이스를 활용해 별도 wrapper 텐서 대신 익숙한 PyTorch tensor 자체를 TPU에서 돌리겠다는 방향이다. 실행 모드는 Debug Eager, Strict Eager, Fused Eager 세 가지다. Google은 Fused Eager가 Strict Eager 대비 50%에서 100% 이상 성능 향상을 낼 수 있다고 설명한다. 컴파일 경로는 torch.compile를 XLA와 StableHLO로 연결하고, DDP·FSDPv2·DTensor도 지원한다고 적었다. 목표 스케일도 O(100,000) chips 수준이다.

HN 댓글은 여기에 현실 감각을 붙였다. 한 이용자는 기존 PyTorch/XLA 경험을 꺼내며 문서화되지 않은 동작과 8시간 학습 뒤 조용히 멈추는 hang까지 겪었다고 적었다. 다른 댓글은 TorchTPU가 fork인지 backend인지부터 물었고, 관련 세션 참석자는 out-of-tree backend에 가깝고 PrivateUse1를 쓴다고 설명했다. 또 다른 반응은 분위기를 잘 보여준다. "한 줄만 바꾸면 된다"는 약속은 너무 좋아 보여서 오히려 의심스럽지만, 그게 대규모에서도 성립하면 TPU를 보는 태도 자체가 달라질 수 있다는 것이다.

이 얘기가 중요한 이유는 하드웨어 성능 수치보다 소프트웨어 마찰을 줄이느냐에 있다. TPU 확산을 가로막은 건 접근성과 가격만이 아니라 개발 경험이었다. TorchTPU가 정말 PyTorch 사용자의 근육 기억을 크게 건드리지 않고 TPU 실행을 열어 준다면, 그때 바뀌는 건 마케팅 문장이 아니라 실전 채택 곡선이다. 원문은 Google Developers Blog, 실제 반응은 Hacker News 스레드에서 볼 수 있다.