Hacker News

OpenTPU – An open-source AI accelerator, developed by AI

OpenTPU — AI가 개발에 참여한 오픈소스 AI 가속기

OpenTPU는 SystemVerilog 하드웨어부터 명령어 집합, 시뮬레이터, 컴파일러와 호스트 소프트웨어까지 공개한 FPGA 기반 AI 가속기입니다. Kintex-7 보드에서 여러 언어 모델을 실행하며 시뮬레이터와 토큰 단위로 결과를 대조했고, 개발자는 설계 개선에 AI를 활용했다고 설명합니다.

AI 요약

OpenTPU는 AI 에이전트를 하드웨어 설계에 얼마나 활용할 수 있는지, 그리고 모델 추론용 칩을 AI가 개발하는 과정에서 어떤 결과를 낼 수 있는지 살펴보는 오픈소스 프로젝트입니다. 저장소 하나에 SystemVerilog 하드웨어, 명령어 집합(ISA), 비트 단위로 동작을 맞춘 Python 시뮬레이터, 커널 언어와 컴파일러, PCIe 카드용 호스트 소프트웨어를 담았습니다. 설계와 실행 과정을 끝까지 읽고 시험할 수 있도록 학습용 프로젝트로도 구성했습니다.

FPGA 보드와 모델 실행

가속기는 Inspur YPCB-00338 카드의 Xilinx Kintex-7 xc7k480t FPGA와 DDR3 메모리 두 채널을 사용합니다. 카드의 메모리 대역폭 최고치는 17.1GB/s이며, 설계는 133.33MHz로 동작합니다. 제작자는 LFM2.5, Qwen3, Qwen3.5, Gemma 4, Phi-4-mini 등 10개 모델을 실제 가중치로 실행했다고 보고합니다. 각 설정에서 카드와 시뮬레이터가 생성한 토큰이 위치별로 일치합니다.

LFM2.5-230M은 int8 가중치에서 초당 59.0토큰, 4비트 가중치와 int8 출력층에서 85.8토큰을 처리합니다. Qwen3-0.6B는 각각 21.6토큰과 31.3토큰입니다. 4비트 형식은 FP4 값과 두 단계 블록 스케일을 사용해 가중치당 4.25비트를 차지합니다. 문서에 따르면 모델에 따라 토큰당 읽는 바이트를 약 3분의 1 줄이고 디코딩 속도를 40~45% 높이는 대신 perplexity가 달라집니다. 출력층은 정확도를 위해 int8로 유지합니다.

디코딩은 메모리 대역폭에 묶여 있습니다. DDR3 최고 대역폭 대비 실제 읽기 성능은 대체로 82~94%이며, 더 큰 모델일수록 측정 대역폭이 16GB/s 안팎까지 올라갑니다. 이전 이미지와 비교하면 새 설계의 디코딩 속도는 모든 설정에서 2.3% 이내였지만, 프리필 속도는 Qwen3.5에서 1.3배, LFM2 4비트에서 2배 빨라졌습니다. 메모리 컨트롤러 보정은 카드 내부 CPU가 시작 시 양쪽 DDR3 채널을 대상으로 12초 동안 수행합니다.

단순한 명령 구조와 추적 도구

하드웨어는 사이클마다 명령 하나를 내보내는 시퀀서, DMA, 행렬 연산 장치, 벡터 연산 장치, 양자화 장치로 구성됩니다. 캐시나 숨겨진 스케줄링은 두지 않았으며, 데이터 이동도 명령으로 표현합니다. 따라서 실행 추적에서 각 사이클이 DRAM이나 다른 명령을 기다리는지 확인할 수 있습니다. Lens 프로파일러는 RTL, 시뮬레이터, 실제 카드의 실행을 기록하고 타임라인과 명령별 표, roofline 그래프로 보여줍니다.

호스트 부담을 줄이는 디코딩 프로그램도 구현했습니다. LFM2와 Qwen3는 한 번 컴파일한 프로그램이 위치 정보를 읽고 임베딩과 RoPE 데이터를 직접 찾습니다. 카드가 실행되는 동안 로짓을 전송해 호스트가 토큰을 처리하는 시간을 줄입니다. 호스트의 토큰당 추가 시간은 omarchy에서 0.17~0.30ms, opentpu에서 0.45~1.3ms라고 보고합니다. 4GiB 카드 메모리에 들어가지 않는 Mixture-of-Experts 모델은 호스트 저장소의 전문가 가중치를 필요한 때 PCIe로 전송합니다. 이 방식으로 LFM2.5-8B-A1B는 초당 10.6토큰, Qwen3.5-35B-A3B는 3.95토큰을 기록했으며, 두 모델도 시뮬레이터와 결과가 일치했습니다.

재현과 검증

카드가 없어도 Python과 Verilator를 설치해 테스트하고 ISA 시뮬레이터에서 모델을 실행할 수 있습니다. 실제 보드에는 Vivado 비트스트림을 만들고 JTAG로 올린 뒤 호스트 도구를 설치합니다. 프로젝트는 SystemVerilog, ISA, 시뮬레이터를 바꾸면 pytest가 통과해야 한다고 명시하며, 성능 수치에는 측정 방법을 함께 적도록 안내합니다. 성능 측정은 512토큰 프롬프트 뒤 64개 토큰을 greedy 방식으로 생성하는 절차 등을 사용합니다. ‘AI가 개발했다’는 설명과 별개로, 공개된 자료의 성능 수치는 특정 FPGA 보드에서 측정한 것이며 최신 AI 가속기와의 직접 비교 결과는 아닙니다.

Hacker News 반응

  • @fsbonetto — RISC-V CPU 코어를 AI로 개발한 뒤 같은 방식을 openTPU 개발에도 썼습니다. 현대적인 모델 대부분을 실행하는 오픈소스 추론 엔진입니다. TPU는 처음에 초당 몇 토큰만 생성했지만, 재귀적 자기 개선 과정을 거쳐 작은 모델에서 초당 80토큰 이상에 도달했습니다.
    • @Retro_Dev — 작은 모델에서 초당 80토큰 이상이라는 수치는 기존 TPU와 비교하면 어떻습니까? ‘작은 모델’은 얼마나 작습니까?
  • @AnimalMuppet — 이 하드웨어 성능을 아는 사람이 있습니까? 사람이 설계한 최신 하드웨어와 비교하면 어떻습니까? 실제로 성능이 나아졌습니까? 재귀적 자기 개선을 말하려면 우선 성능부터 개선해야 합니다.
    • @chris_money202 — Google TPU 같은 AI ASIC에는 이보다 훨씬 많은 연산 유닛이 들어갑니다. 이 설계는 일반적인 AI 칩을 이루는 작은 단위에 가깝습니다. PCIe와 Ethernet, 여러 칩을 연결하는 하위 시스템 같은 주변부도 빠져 있습니다.
    • @AnimalMuppet — 답변 감사합니다. 하지만 제 질문은 이 부분의 성능이 최신 수준인지, 더 나은지, 더 나쁜지입니다.
    • @fsbonetto — 이 하드웨어가 낼 수 있는 최대 성능의 80~90%에 도달했습니다. 병목은 DDR3 속도입니다. 다음에는 DDR4와 HBM2를 탑재한 FPGA를 구하는 중입니다.
  • @mbgerring — AI가 스스로 추론 하드웨어를 개발했다는 말은 틀렸습니다. 사람이 LLM에 하드웨어 설계용 소프트웨어 시뮬레이션 환경을 만들도록 지시했고, 그 환경에서 LLM이 지시에 따라 제약 조건에 맞는 설계를 최적화했습니다.
    • @sailingparrot — 어려운 부분은 시뮬레이터에서 작동한 설계가 실제에서도 작동하도록 시뮬레이션을 정확하게 만드는 일입니다. 현실과 맞지 않는 시뮬레이터 안에서 설계를 만들어내는 건 유용하지도, 대단하지도 않습니다.
    • @sobellian — 저장소는 FPGA에서 시험했다고 설명합니다. ASIC과 같은 것은 아니며 어떤 오류가 있는지도 알 수 없지만, 실제로 토큰을 출력하는 결과물을 만들었습니다.
  • @athrowaway3z — 아직 결과를 자세히 살펴보지는 않았지만, 최첨단 모델이 모델을 실행하는 가속기를 만들 수 있었던 시점은 작년 12월쯤이라고 봅니다. 다음 질문은 최첨단 모델이 스스로 하드웨어를 개선하도록 메모리 처리량을 충분히 확보할 수 있느냐는 점입니다. AI가 재구성 가능한 FPGA의 구조를 활용하는 모델 아키텍처를 설계할 수 있는지도 궁금합니다.
    • @fsbonetto — 전력 소비를 조금 개선할 수는 있겠지만, 현재 설계도 프로그래밍 가능성과 유연성을 유지하면서 이 하드웨어의 이론상 최고 속도 90%를 달성합니다.
  • @AnimalMuppet — 이 설계가 실제로 성능을 개선했는지 물었을 때, @fsbonetto는 현재 하드웨어에서 가능한 최대 성능의 80~90%라고 답했습니다. 대화에서는 이를 최신 AI ASIC과의 직접 비교로 해석하기 어렵다는 지적도 나왔습니다.

원문: Hacker News / 번역·요약: Trawling