$250 FPGA의 온칩 메모리만으로 돌린 초소형 LLM, 21,000 tok/s
Show HN: A tiny LLM running at 21,000 tok/s on a $250 FPGA (Live Demo)
TL;DR Highlight
가중치를 전부 칩 안에 넣었더니 $250 FPGA에서 약 21,300 tok/s가 나왔다
Who Should Read
LLM 추론이 왜 메모리 대역폭에 막히는지 감을 잡고 싶은 LLM API·서빙 담당 백엔드 개발자
Core Mechanics
- 토큰 생성은 계산이 아니라 읽기가 병목
- 토큰 하나를 만들 때마다 모델 가중치 전체를 한 번씩 읽는다.
- KV260에서 Arm 코어와 FPGA 로직은 약 20 GB/s짜리 DDR 컨트롤러 하나를 같이 쓴다.
- 가중치가 DDR에 있으면 FPGA를 써도 이득이 없다.
- 모델을 온칩에 통째로 넣는 게 핵심
- 3.16M 파라미터 INT4(4비트 정수) 트랜스포머를 약 1.5 MB로 온칩 메모리(URAM/BRAM)에 올렸다.
- 토큰 루프에 DRAM이 전혀 들어가지 않는다.
- 저자는 이 아이디어가 Taalas, Groq, Cerebras와 같은 발상이라고 설명한다.
- 같은 모델이 보드 CPU에선 11 tok/s
- 같은 모델이 보드의 Arm 코어에선 11 tok/s, 노트북 RTX 3050 Ti에선 719 tok/s였다.
- FPGA 로직의 최고 기록은 59,965 tok/s로 비트 단위까지 일치했다.
- 최고 기록은 대화가 안 되는 빌드
- 16개 스트림이 가중치 한 번 읽기를 공유해 59,965.5 tok/s(200 MHz)를 냈다.
- 어텐션 창이 토큰 1개라서 "he he he he he"만 나온다.
- 실제 데모는 전체 컨텍스트를 쓰는 1개 스트림 빌드로 실측 약 21,300 tok/s다.
Community Reactions
- 커뮤니티 이런 프로젝트가 HN에서 관심을 덜 받는다는 의견
- 1T+ 모델을 초당 몇 토큰으로 돌리는 글에는 낙관적인 반응이 많다는 지적이다.
- 이 프로젝트는 확장은 어렵지만 개념 시연으로는 훌륭하다는 평가다.
- FPGA 진입장벽이 높고 GPU가 학습·추론 확장성에서 유리하다는 의견
- 타이밍 다이어그램, 순차·조합 논리 등 지식이 필요하고 EDA 대기 시간도 길다는 지적이다.
- Yosys는 아직 Xilinx 툴보다 한참 뒤처졌다는 의견이다.
- ASIC에 가중치를 ROM으로 박으면 모델 업데이트가 안 된다는 의견
- SRAM은 가중치를 담기엔 밀도가 낮고 DRAM은 대역폭 문제가 있다는 지적이다.
- 구조는 고정하고 가중치만 바꾸는 시스톨릭 배열 같은 대안을 상상해 볼 수 있다는 의견이다.
- 2,000 연결에서도 처리량이 평평한 이유를 묻는 질문
- 스트림이 하나를 공유하는데 연결별 지연 시간은 어떤지 궁금하다는 질문이다.
- 이런 작은 모델의 실용성을 의문시하는 의견
- 결과가 random.choice와 비슷하게 비일관적이고 더 느리다는 비판이다.
How to Apply
- 서빙 병목이 대역폭인지 계산해 보기
- 오늘 쓰는 모델의 가중치 크기(GB)를 메모리 대역폭(GB/s)으로 나눠 토큰당 최소 시간의 상한을 구하라.
- 실측 tok/s와 비교해 메모리 병목인지 확인하라.
- INT4 양자화로 크기·속도 비교하기
- 같은 모델의 INT4와 상위 정밀도 버전을 같은 프롬프트로 돌려 tok/s와 품질을 비교하라.
- 가중치 크기가 줄수록 읽는 양이 줄어 빨라지는지 확인하라.
- 온디바이스 소형 모델의 용량 한도 정하기
- 대상 하드웨어의 온칩·캐시 메모리 용량을 조사하라.
- 모델과 KV 캐시가 그 안에 들어가는 크기인지 따져 모델 규모를 정하라.
Try It
# Claude 또는 ChatGPT 채팅창에 붙여넣기 (원문 아이디어의 간이 계산 프롬프트)
나는 LLM 추론 속도가 메모리 대역폭에 묶여 있는지 확인하고 싶어.
- 모델 파라미터 수: {{파라미터 수}}
- 가중치 정밀도(비트): {{FP16/INT8/INT4}}
- 메모리 대역폭(GB/s): {{대역폭}}
- 현재 실측 tok/s: {{실측값}}
토큰 하나를 만들 때 가중치 전체를 한 번 읽는다는 가정으로 대역폭 기준 이론 최대 tok/s를 계산하고, 실측과 비교해 병목이 어디인지 설명해 줘.
이어서 해 볼 것: 정밀도를 INT4로 바꾸면 이론 최대치가 어떻게 바뀌는지 물어보기.Terminology
관련 논문
Mercury 3: 규모를 키운 diffusion LLM, 초당 1,000토큰 이상
Diffusion LLM을 40배 키웠더니 속도 4~8배, 품질은 속도 특화 모델 수준
Timestral: Mistral의 시계열 파운데이션 모델
209M 파라미터 시계열 모델이 3대 벤치마크 1위, CPU에서도 돌아간다
DeepSeek V4.1 Flash 1017 (Max) 성능·속도·가격 분석
DeepSeek V4.1 Flash 1017 Max는 지능 지수 45에 211 tok/s, 입력 $0.30
LLM 프록시를 직접 안 돌리면 무슨 일이 벌어지는지 어떻게 아나
자체 LLM 프록시를 세웠더니 키·모델·캐시 미스를 직접 볼 수 있다
DeepSeek V4.1 Flash 1017: 싼 가격에 1M 컨텍스트를 주는 에이전트용 모델
DeepSeek V4.1 Flash 1017은 입력 $0.05/M, 1M 컨텍스트의 에이전트용 모델
DeepSeek-V4.1-Flash-1017 공개: 더 짧게 생각하고 더 빠르게 일하는 에이전트용 모델
DeepSeek V4.1 Flash 마이너 업데이트로 코딩·에이전트 벤치 점수↑, 실행 시간·출력 길이↓
Llmspeed: 로컬 LLM 속도를 하드웨어 구매 전에 체감해 보는 시뮬레이터
GPU·모델을 고르면 로컬 LLM 속도를 미리 체감하게 해 주는 시뮬레이터