엔지니어링 · 2026년 7월 31일

$60 보드에서 실행하는 생성형 추론: STM32H747의 Gear-1M

Gear 제품군의 가장 작은 모델은 ARM Cortex-M7에서 초당 20 tokens의 텍스트를 생성합니다. NPU도, 외부 RAM도, 클라우드도 필요하지 않습니다. 언어 모델이 들어가기 어렵다고 여겨지는 환경에 모델을 배포한 방법을 소개합니다.

작성: OptAI 연구팀

핵심 요점

Two horizontal budget bars. Flash: 1.59 megabytes used of 2.0 available. SRAM: 449 kilobytes peak of 1.0 megabyte available.
두 막대로 보는 배포 결과: 바이너리와 실행 중 작업 메모리를 보드에 담고도 여유 공간이 남습니다.

하드웨어 제약

STM32H747I-DISCO는 Cortex-M7 400 MHz, Flash 2 MB, SRAM 1 MB, 소형 LCD를 갖춘 표준 평가 보드입니다. 가격은 약 $60이며, 가전제품, 계량기, 산업용 컨트롤러에 이미 대량으로 쓰이는 유형의 부품입니다.

이 자원 예산은 바꿀 수 없습니다. Swap도 외부 DRAM도 없고, 연산을 넘겨줄 가속기도 없습니다. 모델과 런타임, 애플리케이션을 모두 Flash 2 MB와 RAM 1 MB 안에 넣지 못하면 실행할 수 없습니다.

1메가바이트의 가중치에 담은 구성

KV-cache를 없애야 했던 이유

일반적인 Transformer의 KV-cache는 대화가 길어질수록 RAM을 더 사용합니다. 이 보드에서 가장 부족한 자원입니다. Gear의 로컬 레이어는 대신 context 길이와 관계없이 4개 위치의 고정된 convolution state를 유지합니다. 따라서 decode 시 메모리 사용량이 prompt 길이에 따라 달라지지 않습니다. 같은 아키텍처를 이 보드부터 64K context를 지원하는 대형 모델까지 확장할 수 있는 이유입니다.

Per-layer decode state plotted against context length: global attention climbing, sliding-window attention flat at 1,024, and the ConvKV mixer flat along the baseline.
Context 길이에 따른 레이어별 decode state. 보라색 기준선인 ConvKV-Gated Mixer가 마이크로컨트롤러에서 사용하는 메모리 수준입니다.

수행하는 작업

Gear-1M은 자연어를 구조화된 보드 제어 인텐트로 변환합니다. 아래 데모는 실제로 프로파일링한 작업입니다. 보드가 요청을 해석하고, 펌웨어가 실행할 수 있도록 타입이 지정된 JSON을 출력합니다:

$ gear run --model gear-1m-w4a32
> turn on the blue led and write hello on the lcd
{ "action": "led_set", "led": "blue", "state": "on" }
{ "action": "lcd_write", "text": "hello" }

초당 20 tokens라면 이와 같은 응답은 약 1초 반 만에 완성됩니다. 네트워크 스택이 전혀 없는 장치에서도 대화처럼 느낄 수 있는 속도입니다.

추정이 아닌 실측

20.0 tok/sdecode, Cortex-M7 @ 400 MHz
50 mstoken당, W4A32
1.59 MB.text — 전체 바이너리
449 KB최대 RAM 사용량

네 수치 모두 서버 실행 결과에서 추정한 값이 아니라 장치에서 직접 측정했습니다. 프로파일링 방법과 모바일 NPU에서 실행한 270M·1B 모델의 동일한 측정 결과는 기술 보고서에 포함되어 있습니다.

가중치와 배포용 바이너리는 Hugging Face에서 확인할 수 있으며, 다른 제품군은 모델 페이지에서 볼 수 있습니다. 아직 지원하지 않는 보드를 사용하고 계시다면 알려 주세요.

← All posts On-device performance →

Opt.Gear를 포함한 언어 모델은 OptAI의 견해와 다른 부정확한 내용을 생성할 수 있습니다. 결과를 활용하거나 공개·배포하기 전에 검토하세요.