openTPU: AI가 개발한 오픈 소스 추론 가속기

추론을 위한 AI 기반 하드웨어 설계

openTPU는 AI 에이전트가 하드웨어 설계를 처리하고 자체 추론을 실행하는 데 필요한 칩을 구축할 수 있음을 입증하기 위해 설계된 오픈 소스 AI 가속기입니다. 이 프로젝트는 하드웨어 설계(SystemVerilog), 명령어 집합 아키텍처(ISA), 비트 단위 정확도 시뮬레이터, 컴파일러가 포함된 커널 언어, 물리적 PCIe 카드를 구동하는 데 필요한 호스트 소프트웨어를 포함하여 단일 모노레포 내에 완전한 수직 스택을 제공합니다.

프로젝트 작성자에 따르면, 개발 과정에서 재귀적 자기 개선 루프가 활용되었습니다. 처음에 AI를 사용하여 RISC-V CPU 코어를 개발한 후, 동일한 기술을 openTPU에 적용하여 가속기의 성능을 초당 몇 토큰 수준에서 소형 모델 기준 초당 80토큰 이상으로 향상시켰습니다.

하드웨어 사양 및 구현

openTPU는 Xilinx Kintex-7 xc7k480t FPGA와 두 개의 DDR3 채널(17.1 GB/s 피크의 DDR3-1066)을 특징으로 하는 Inspur YPCB-00338 카드에서 구현되었습니다. 시스템은 133.33 MHz의 클록 속도로 작동합니다.

아키텍처 구성 요소

  • Sequencer: 사이클당 하나의 명령어를 다양한 기능 유닛으로 발행합니다.
  • DMA: 데이터 이동을 처리합니다.
  • Matrix Unit: DRAM에서 스트리밍되는 int8 가중치를 곱하는 4열 시스톨릭 행렬 유닛입니다.
  • Vector Unit: FP32 수학 연산을 수행합니다.
  • Quantizer: 결과를 다시 int8로 변환합니다.
  • LiteDRAM Controllers: 메모리 코어 내의 내부 CPU에 의해 보정되며, 호스트 개입 없이 12초 만에 두 DDR3 채널을 모두 보정할 수 있습니다.

이 아키텍처는 단순성과 투명성을 위해 설계되었으며, 캐시나 숨겨진 스케줄링이 없습니다. 모든 데이터 이동은 명시적인 명령어이므로, 하드웨어 활용도의 루프라인 및 타임라인 뷰를 제공하는 포함된 "Lens" 프로파일러를 통해 정밀한 성능 프로파일링이 가능합니다.

성능 벤치마크

openTPU는 Qwen3, Qwen3.5, LFM2.5, Gemma 4, SmolLM3, Phi-4-mini를 포함한 다양한 최신 모델을 지원합니다. 이 설계는 물리적 FPGA 카드와 Python 기반 ISA 시뮬레이터 간의 비트 단위 일치를 달성합니다.

디코드 및 프리필 성능

성능은 모델 크기와 양자화 수준(int8 대 4-bit)에 따라 다릅니다.

모델 가중치 디코드 (장치) 프리필 (장치) DRAM 대역폭
LFM2.5-230M 4-bit, int8 헤드 85.8 tok/s 335.4 tok/s 14.1 GB/s (82% 피크)
Qwen3-0.6B 4-bit, int8 헤드 31.3 tok/s 103.4 tok/s 13.9 GB/s (82% 피크)
Qwen3.5-0.8B 4-bit, int8 헤드 24.5 tok/s 23.3 tok/s 66.7 tok/s
LFM2-2.6B 4-bit, int8 헤드 10.96 tok/s 10.93 tok/s 20.6 tok/s
Phi-4-mini (3.8B) 4-bit, int8 헤드 6.56 tok/s 15.0 tok/s 15.8 GB/s (92% 피크)
Qwen3.5-4B 4-bit, int8 헤드 5.88 tok/s 12.9 tok/s 15.7 GB/s (92% 피크)

메모리 관리 및 양자화

  • 4-bit 양자화: LM 헤드를 int8로 유지하면서 2단계 블록 스케일(가중치당 4.25비트)을 사용하는 FP4 값을 사용합니다. 이는 토큰당 바이트를 약 1/3로 줄이고 디코드 속도를 40%에서 45%까지 향상시킵니다.
  • Expert Offloading: 카드의 4 GiB 용량을 초과하는 Mixture-of-Experts (MoE) 모델의 경우, 전문가 데이터가 호스트 스토리지에서 스트리밍됩니다. 예를 들어, Qwen3.5-35B-A3B는 전문가 사용의 62%가 로컬 DRAM 슬롯에 적중하여 3.95 tok/s를 달성하며, PCIe를 통해 1.41 GB/s의 속도로 토큰당 153 MB를 스트리밍합니다.

소프트웨어 스택 및 도구

이 프로젝트는 고수준 연산(예: ol.dot 및 ol.quantize)을 32비트 워드 ISA로 변환하는 JIT 컴파일러가 포함된 커널 언어(ol)를 사용합니다.

도구 모음

  • otpu-chat: ISA 시뮬레이터 또는 물리적 보드를 사용하여 지원되는 모델과 대화하기 위한 인터페이스입니다.
  • otpu-smi: 온도, 전력, DRAM 대역폭 및 유닛 활용도를 모니터링하기 위한 시스템 관리 인터페이스입니다.
  • otpu-lens: RTL, 시뮬레이터 또는 카드에서 실행을 기록하여 사이클 단위 실행을 분석하는 브라우저 기반 프로파일러입니다.

커뮤니티 관점

이 프로젝트는 기능적인 AI 설계 가속기를 보여주지만, Hacker News의 커뮤니티 토론에서는 "AI가 개발한 하드웨어"의 정의에 관한 논쟁이 강조되었습니다.

"AI는 이제 자체 추론 하드웨어를 개발할 수 있다. 아니, 그렇지 않다. 인간이 LLM에게 하드웨어 설계를 위한 소프트웨어 시뮬레이션 환경을 구축하도록 프롬프트를 주었고, 이를 통해 LLM이 인간의 프롬프트를 받아 시뮬레이션 내의 제약 조건에 맞춰 하드웨어 설계를 최적화한 것이다." — @handle

다른 기여자들은 사용자가 Python 코드에서 FPGA의 물리적 와이어까지 행렬 곱셈을 추적할 수 있게 해주는 이 프로젝트의 오픈 소스 특성이 가진 교육적 가치를 언급했습니다.

Sources

관련

  • 프로젝트
  • Dispatch
  • 프로젝트
  • Dispatch
  • Dispatch