AI Neo Lab
무료 AI 도구

openTPU로 FPGA에서 최신 AI 모델 직접 가속하는 6단계

대용량 모델을 CPU로 실행하면 속도가 느리고 비용이 급증합니다. 기존 상용 가속기는 비싸고 설정이 복잡합니다. 이 자료는 openTPU를 설치하고 Kintex‑7 PCIe 카드에서 Qwen3·LFM2.5·Gemma 등 최신 모델을 직접 가속하는 방법을 단계별로 안내합니다.

openTPU는 RTL, ISA, 시뮬레이터, 컴파일러, 프로파일러가 한 레포에 모여 있는 완전 오픈소스 AI 가속기입니다. FPGA 카드에 탑재해 실제 모델을 실행해 보면, 하드웨어 설계부터 토큰 디코드까지 전체 흐름을 손쉽게 파악할 수 있습니다.

왜 openTPU를 사용하나요

openTPU는 AI 가속기를 한 곳에서 완전하게 공개한 오픈소스 프로젝트입니다. RTL, ISA, 시뮬레이터, 컴파일러, 프로파일러가 모두 하나의 monorepo에 담겨 있어, 하드웨어 설계부터 실제 PCIe 카드에서 실행되는 호스트 소프트웨어까지 단계별로 손쉽게 따라가며 학습할 수 있습니다. 이로써 비용을 크게 절감할 수 있는데, 예를 들어 Xilinx Kintex‑7 xc7k480t 기반 PCIe 카드 하나만으로 Qwen3, LFM2.5, Qwen3.5 등 최신 모델을 실행할 수 있어, GPU나 전용 ASIC에 비해 초기 투자비와 전력 비용이 낮습니다.

실제 성능 측정 결과, openTPU는 10개의 현대형 모델을 동일한 가중치를 사용해 실행하면서도 DRAM 대역폭을 91–94%까지 활용해 이전 버전보다 8–9% 빠른 디코딩 속도를 보여주었습니다. 예를 들어, Build B에서 LFM2‑2.6B는 11.07 토큰/초, SmolLM3‑3B는 8.92 토큰/초, Phi‑4‑mini는 6.69 토큰/초를 기록했습니다. 또한, Qwen3.5‑4B의 int8 이미지가 4 GiB 이상이지만, 메모리 관리를 최적화해 카드 내부에 대부분을 저장하면서도 높은 처리량을 유지합니다. 이러한 성능과 낮은 비용 덕분에 연구자와 엔지니어가 자체 모델을 빠르게 테스트하고, 학습 데이터를 실험할 수 있는 환경을 제공합니다.

모델토큰/초 (Build B)DRAM 사용률
LFM2‑2.6B11.0791–94%
SmolLM3‑3B8.9291–94%
Phi‑4‑mini6.6991–94%

설치·사용 단계

openTPU를 처음 사용하려면 먼저 GitHub 레포(https://github.com/FeSens/openTPU)를 복제합니다. 레포 안에는 RTL, ISA, 시뮬레이터, 컴파일러, 프로파일러가 모두 포함돼 있어 별도 설치가 필요 없어요. 복제 후, Kintex‑7 xc7k480t 기반 PCIe 보드(인스퍼 YPCB‑00338)를 PC에 연결하면 준비가 끝납니다.

다음 단계는 레포에 포함된 비트스트림 이미지를 보드에 플래시하는 것입니다. 현재 배포된 메인 이미지(e698dcd)는 133.33 MHz에서 동작하고, 하나의 비트스트림으로 Qwen3, LFM2.5, Qwen3.5 등 최신 모델 10개를 실행할 수 있어요. 이미지가 플래시되면 호스트(예: Intel Core i7‑4790)에서 제공되는 실행 스크립트를 사용해 모델을 바로 구동할 수 있습니다.

  1. 1. 레포 복제

    GitHub에서 openTPU 레포를 로컬에 복제합니다.

  2. 2. FPGA 보드 연결

    PCIe 케이블로 Kintex‑7 보드를 PC에 연결하고, 전원을 켭니다.

  3. 3. 이미지 플래시

    레포에 포함된 e698dcd 비트스트림을 보드에 플래시합니다.

  4. 4. 모델 실행

    호스트 소프트웨어를 이용해 Qwen3·LFM2.5·Qwen3.5 등 원하는 모델을 실행합니다.

  • 복제 명령: git clone https://github.com/FeSens/openTPU.git (자료에 명시된 URL 사용)
  • 플래시 도구는 레포에 포함된 스크립트를 그대로 실행하면 됩니다.

다음 단계

이미지를 플래시한 뒤에는 모델별 성능을 확인하고, 필요에 따라 파라미터(예: DRAM 대역폭, 클록 주파수)를 조정해 최적의 추론 속도를 얻을 수 있습니다. openTPU는 전체 흐름을 한 번에 제공하므로, FPGA 기반 AI 가속을 직접 체험하고 싶다면 위 과정을 차례대로 따라해 보세요.

openTPU 한눈에 보기

openTPU는 RTL 설계, ISA, 시뮬레이터, 컴파일러, 프로파일러가 한 레포에 모두 들어있는 오픈소스 AI 가속기예요. RTL은 SystemVerilog 로 작성된 하드웨어 디자인이고, ISA는 그 하드웨어가 이해하는 명령 집합을 정의합니다. 시뮬레이터는 비트‑정확하게 동작을 검증해 주며, 컴파일러는 Python‑ 수준의 매트맹(matmul) 코드를 ISA 로 변환합니다. 마지막으로 프로파일러는 실행 중인 모델의 DRAM 사용량과 사이클을 측정해 성능 튜닝에 도움을 줍니다. 이 모든 요소가 순차적으로 연결돼서, 사용자는 모델을 컴파일하고, PCIe 카드에 올린 뒤, 프로파일러로 결과를 확인할 수 있어요.

  1. 1. RTL 설계

    SystemVerilog 로 작성된 하드웨어가 FPGA에 배치됩니다.

  2. 2. ISA 정의

    RTL이 해석할 수 있는 명령어 집합이 설계됩니다.

  3. 3. 시뮬레이터

    비트‑정확 시뮬레이터가 ISA와 RTL의 동작을 검증합니다.

  4. 4. 컴파일러

    Python‑ 수준의 매트맹 코드를 ISA 명령어로 변환합니다.

  5. 5. 프로파일러

    실제 카드에서 DRAM 트래픽·사이클을 측정해 성능을 분석합니다.

구성 요소역할
RTL하드웨어 로직 구현
ISA명령어 집합 정의
시뮬레이터비트‑정확 검증
컴파일러고수준 코드 → ISA 변환
프로파일러성능 측정·튜닝
전체 흐름도 자세히 보기

사용자는 먼저 레포에서 전체 소스를 클론하고, RTL을 FPGA에 합성합니다. 그 다음 ISA에 맞춰 모델을 컴파일하고, 시뮬레이터로 사전 검증합니다. 검증이 끝나면 실제 PCIe 카드에 로드하고, 프로파일러를 통해 DRAM 사용률과 사이클을 실시간으로 확인하면서 모델을 실행합니다.

  • RTL: SystemVerilog 기반 하드웨어
  • ISA: 가속기 명령어 정의
  • 시뮬레이터: 비트‑정확 동작 검증
  • 컴파일러: 파이썬 매트맹 → ISA 변환
  • 프로파일러: DRAM·사이클 측정

주의할 점

openTPU를 Kintex‑7 PCIe 보드에 올려서 최신 모델을 실행할 때는 몇 가지 운영상의 제약을 미리 확인하는 것이 좋습니다. 보드에는 Xilinx Kintex‑7 xc7k480t와 DDR3 2채널이 탑재돼 있어, 전원·냉각·DRAM 대역폭 모두가 모델 성능에 직접적인 영향을 미칩니다.

빌드 이미지 호환성도 확인해야 합니다. 현재 배포된 메인 이미지(e698dcd)와 새로 만든 Build B는 클럭이 133.33 MHz이고, 모든 모델을 하나의 비트스트림으로 구동합니다. Build B는 LFM2‑2.6B, SmolLM3‑3B, Phi‑4‑mini 등을 기존 이미지보다 8‑10% 빠르게 디코딩하지만, 이미지 버전이 맞지 않으면 보드가 정상 동작하지 않을 수 있습니다.

이미지특징
e698dcd120.755 MHz, MIG 기반, DDR3 피크 82‑87% 활용
Build B133.33 MHz, LiteDRAM 컨트롤러, DDR3 피크 91‑94% 활용
모델 크기 제한

Qwen3.5‑4B의 int8 이미지 크기는 4 GiB를 넘어갑니다. 이보다 큰 모델은 현재 카드 메모리(DDR3 2채널)와 LiteDRAM 버퍼에 모두 적재할 수 없으므로, 모델을 4‑bit 또는 8‑bit 양자화하여 크기를 줄이거나, 임베딩 테이블을 호스트 메모리에서 매 토큰마다 11 KB씩 전송하는 방식을 사용해야 합니다.

  • DRAM 대역폭이 90% 이상 사용될 경우 토큰당 디코드 시간이 증가할 수 있습니다.
  • 빌드 이미지 버전을 정확히 맞추지 않으면 FPGA가 부팅되지 않을 수 있습니다.
  • 4 GiB를 초과하는 int8 모델은 현재 보드에 직접 적재할 수 없습니다.

이런 글도 있어요