openTPU로 최신 AI 모델 5가지 직접 구동하는 4단계 가이드
대형 언어 모델을 로컬에서 실행하고 싶지만, 비싼 전용 하드웨어가 없다는 고민을 겪고 계신가요. 기존 상용 AI 가속기는 비용이 높고, 오픈소스 솔루션은 복잡해 보입니다. 이 자료는 openTPU를 이용해 Qwen3·LFM2.5·Gemma 등 5개의 최신 모델을 직접 구동하고 성능을 확인할 수 있도록 단계별로 안내합니다.
openTPU는 하드웨어 설계부터 컴파일러, 시뮬레이터까지 모두 한 레포지토에 담긴 오픈소스 AI 가속기입니다. Kintex‑7 PCIe 카드 하나로 여러 최신 모델을 실행해볼 수 있어, AI 가속기의 내부 구조를 학습하고 직접 체험하기에 최적의 환경을 제공합니다.
openTPU란 무엇인가요
openTPU는 오픈소스 AI 가속기로, AI 팀이 RTL, ISA, 시뮬레이터, 컴파일러, 프로파일러를 하나의 레포에 모아 만든 프로젝트예요. 전체 가속기가 작은 monorepo에 들어 있어 하드웨어 설계(SystemVerilog)부터 호스트 소프트웨어까지 한눈에 살펴볼 수 있습니다.
현재 Kintex‑7 PCIe 카드(Xilinx Kintex‑7 xc7k480t, DDR3 2채널)에서 Qwen3, LFM2.5, Qwen3.5 등 최신 모델을 실중량 가중치와 함께 실행할 수 있어요. 카드에는 LiteDRAM 컨트롤러와 4‑column systolic 매트릭스가 탑재돼 있으며, 호스트는 Intel Core i7‑4790에서 동작합니다. DRAM 피크의 91‑94%를 활용해 이전 이미지보다 1.3‑2.0배 빠른 성능을 보여줍니다.
| 구성 요소 | 설명 |
|---|---|
| RTL | 하드웨어 설계 (SystemVerilog) |
| ISA | 명령어 집합 |
| 시뮬레이터 | 비트 정확 시뮬레이터 |
| 컴파일러 | 커널 언어 컴파일러 |
| 프로파일러 | 성능 분석 도구 |
- Qwen3
- LFM2.5
- Qwen3.5
- LFM2‑2.6B
- SmolLM3‑3B
- Phi‑4‑mini
- Gemma‑4E2B
- Gemma‑4E4B
openTPU는 어떻게 학습에 활용될 수 있나요?
레포 전체를 읽으며 RTL 설계, ISA 정의, 시뮬레이터 구현, 커널 컴파일 흐름을 순서대로 따라가면, AI 모델이 하드웨어에서 어떻게 실행되는지 단계별로 이해할 수 있습니다.
왜 openTPU를 사용해야 할까
openTPU는 오픈소스 AI 가속기로, 상용 가속기와 달리 라이선스 비용이 없으며 전체 설계가 하나의 레포에 모여 있어 비용 구조를 투명하게 확인할 수 있습니다. RTL·ISA·시뮬레이터·컴파일러·프로파일러가 모두 공개돼 하드웨어와 소프트웨어가 어떻게 연결되는지 직접 살펴볼 수 있어, 필요에 따라 최적화나 수정이 가능합니다.
또한 openTPU는 학습 프로젝트로 설계되었습니다. 시스템Verilog 로 작성된 RTL부터 비트‑정확 시뮬레이터, 커널 언어와 컴파일러, 그리고 실제 PCIe 카드까지 전 과정을 한 레포에서 경험할 수 있습니다. 실제 카드에서는 최신 모델(Qwen3, LFM2.5 등)을 실행하면서 DRAM 피크의 91‑94%를 활용하고, 이전 이미지 대비 8‑9% 빠른 디코드 성능을 보이며 1.3×~2.0× 가속을 달성합니다. 이런 실측 결과는 직접 실험하고 분석할 수 있는 학습 환경을 제공합니다.
| 관점 | 주요 장점 |
|---|---|
| 비용 | 라이선스 비용 없음 |
| 투명성 | 소스 전체 공개·설계 검증 가능 |
| 학습 효과 | 하드웨어·소프트웨어 전 과정 직접 학습 |
openTPU를 직접 사용해볼 수 있나요?
예, Kintex‑7 기반 PCIe 카드를 이용해 실제 모델을 구동할 수 있으며, 동일 레포에 포함된 시뮬레이터로 개발 환경을 바로 시작할 수 있습니다.
설치·사용 단계
openTPU를 실제로 사용하려면 네 단계만 따라 하면 됩니다. 먼저 Kintex‑7 기반 PCIe 카드(예: Inspur YPCB‑00338)를 서버에 장착하고, 다음으로 GitHub에 공개된 openTPU 레포지토리를 클론합니다. 클론한 코드를 이용해 카드용 이미지(비트스트림)를 빌드한 뒤, 빌드된 이미지를 카드에 플래시하고 원하는 모델(Qwen3, LFM2.5, Qwen3.5 등)을 실행하면 됩니다. 모든 모델이 하나의 비트스트림으로 지원되며, LiteDRAM 컨트롤러가 DDR3 채널을 자동 보정해 주기 때문에 별도의 메모리 설정이 필요 없습니다.
PCIe 카드 장착
서버에 Kintex‑7 PCIe 카드를 물리적으로 삽입합니다. 카드가 정상 인식되면 전원을 켜고, host(예: Intel Core i7‑4790)와 PCIe 인터페이스가 연결됩니다.
리포지토리 클론
터미널에서 아래 명령을 실행해 openTPU 코드를 가져옵니다.
이미지 빌드
클론한 폴더에서 제공되는 Makefile이나 빌드 스크립트를 사용해 133.33 MHz, 4 GiB 용량의 이미지(Build B)를 생성합니다. 빌드 과정에서 카드 내부 CPU가 DDR3 채널을 12 초 동안 보정합니다.
모델 실행
빌드된 이미지를 카드에 플래시한 뒤, 호스트 소프트웨어를 통해 Qwen3·LFM2.5·Qwen3.5 등 최신 모델을 실행합니다. 실제 토큰 출력 속도는 모델마다 3.8 ~ 11 tok/s 수준이며, DRAM 대역폭을 91‑94 %까지 활용합니다.
git clone https://github.com/FeSens/openTPU.git- PCIe 카드가 정상 인식되는지 확인 (lspci 등)
- DDR3 채널 보정이 완료될 때까지 전원 공급 유지
- 빌드된 이미지와 모델 가중치를 동일한 디렉터리에 배치
한눈에 보기
openTPU가 현재 지원하는 최신 모델 5가지를 한눈에 살펴볼 수 있어요. Kintex‑7 기반 PCIe 카드(Inspur YPCB‑00338)에서 실행되는 모델은 Qwen3, LFM2.5, Qwen3.5, SmolLM3‑3B, Phi‑4‑mini 등이며, 각각 실제 가중치를 사용해 동일한 토큰을 생성합니다.
각 모델의 디코딩 속도와 DRAM 활용률을 표로 정리했습니다. 토큰당 처리 속도는 device와 wall 두 기준으로 측정했으며, DRAM은 최대 94%까지 피크 대역폭을 활용합니다.
| 모델 | Device 토큰/초 | Wall 토큰/초 | DRAM 활용률 |
|---|---|---|---|
| LFM2‑2.6B | 11.07 | 11.02 | 91‑94% |
| SmolLM3‑3B | 8.92 | 8.89 | 91‑94% |
| Phi‑4‑mini | 6.69 | 6.67 | 91‑94% |
| Gemma 4 E2B (int8) | 11.01 | 12.73 | 91‑94% |
| Gemma 4 E4B | 3.83 | — | 82‑87% |
- 지원 모델: Qwen3·LFM2.5·Qwen3.5·SmolLM3‑3B·Phi‑4‑mini
- 대표 토큰 속도: 3.8 ~ 12.7 tok/s (device 기준)
- DRAM 활용률: 82‑94% (모델별 차이)
- 클럭: 133.33 MHz, 동일 비트스트림으로 모든 모델 실행
주의할 점
Kintex‑7 기반 PCIe 카드, 예를 들어 Inspur YPCB‑00338을 사용할 때는 Xilinx Kintex‑7 xc7k480t FPGA와 DDR3 채널 2개가 반드시 필요합니다. 현재 지원되는 이미지의 클럭은 133.33 MHz이며, 하나의 비트스트림으로 다섯 가지 최신 모델을 모두 실행할 수 있습니다.
새 이미지(Build B)를 적용하면 DRAM 읽기 성능이 DDR3 피크의 91‑94% 수준으로 향상되고, 기존 이미지와 비교해 2.3% 이하의 토큰 차이만 발생합니다. 이미지 로드 시 카드 내부 CPU가 DDR3 채널을 12 초 동안 보정하므로, 보정이 끝날 때까지 기다려야 합니다.
| 카드 모델 | Inspur YPCB‑00338 |
|---|---|
| FPGA | Xilinx Kintex‑7 xc7k480t |
| DDR3 채널 | 2개 |
| 클럭 | 133.33 MHz |
| 최대 이미지 크기 | ≈4 GiB (int8) |
- DRAM 대역폭이 DDR3 피크의 91‑94% 수준이므로, 메모리 사용량이 높은 모델은 이미지 크기를 반드시 확인하세요.
- 새 이미지 사용 시 기존 이미지와 토큰 출력이 2.3% 이하 차이로 동일하니, 호환성 테스트를 별도로 진행할 필요가 없습니다.
호스트 준비
Intel Core i7‑4790 등 호스트 PC가 정상 작동하는지 확인합니다.
카드 장착
PCIe 슬롯에 Inspur YPCB‑00338 카드를 올바르게 삽입합니다.
이미지 로드
133.33 MHz 이미지(bitstream)를 FPGA에 플래시하고, 로드가 완료될 때까지 기다립니다.
DDR3 보정
카드가 자동으로 DDR3 채널을 12 초 동안 보정합니다. 보정이 끝나면 모델 실행이 가능합니다.
정리
지금까지 openTPU를 활용해 Qwen 3, LFM2.5, Qwen 3.5 등 최신 모델 5가지를 Kintex‑7 PCIe 카드(Inspur YPCB‑00338) 위에서 직접 구동해 보았습니다. git clone https://github.com/FeSens/openTPU.git 로 레포를 받아서, 하드웨어 설계(SystemVerilog), ISA, 시뮬레이터, 컴파일러, 프로파일러가 모두 한 곳에 모여 있다는 점을 확인했죠. 카드에서는 133.33 MHz 클럭으로 한 비트스트림만으로 여러 모델을 실행했으며, DRAM 활용률은 91‑94 % 수준으로 기존 이미지보다 1.3‑2.0배 빠른 디코딩 속도를 보여줍니다.
다음 단계에서는 커스텀 ISA를 설계하고, 새 모델을 추가해 보는 것이 목표입니다. 레포에 포함된 RTL과 ISA 정의 파일을 수정하면 새로운 연산을 정의할 수 있고, 시뮬레이터로 정확성을 검증한 뒤 컴파일러를 재빌드하면 카드에서 바로 테스트할 수 있습니다. 모델 추가는 기존 컴파일러가 지원하는 포맷으로 가중치를 준비하고, 시뮬레이터와 프로파일러를 활용해 메모리 사용량과 DRAM 대역폭을 미리 체크하면 됩니다.
ISA 커스터마이징
레포의
isa/디렉터리에서 opcode를 정의하고, RTL에 해당 연산 로직을 추가합니다.새 모델 준비
모델 가중치를 openTPU 컴파일러가 인식하는 포맷으로 변환하고, 시뮬레이터로 메모리 매핑을 확인합니다.
빌드 및 테스트
전체 레포를 재컴파일하고, PCIe 카드에 로드한 뒤 프로파일러로 토큰당 처리량을 측정합니다.
| 현재 지원 모델 | Qwen 3, LFM2.5, Qwen 3.5, SmolLM3‑3B, Phi‑4‑mini |
|---|---|
| 다음 단계 목표 | 커스텀 ISA 설계, 새로운 모델 추가 |
자주 묻는 질문
Q: ISA를 바꾸면 기존 모델이 작동하지 않나요? A: 기존 opcode는 그대로 두고 새 opcode만 추가하면 기존 모델은 그대로 실행됩니다.