2006년형 아이팟에서 80MHz, 64MB 램, FPU 없이 llama2.c 구동하기
llama2.c on a 2006 iPod @ 80 MHz w/ 64 MB ram and no FPU
핵심 요약
2006년형 아이팟 비디오에서 정수 연산 기반으로 포팅된 llama2.c 모델을 구동한 기술적 성취 사례입니다.
- 하드웨어 사양 — 80MHz ARM7TDMI 프로세서와 64MB 램을 탑재한 2006년형 아이팟 비디오에서 구동함.
- 기술적 구현 — FPU 부재를 해결하기 위해 llama2.c를 정수 연산 전용으로 포팅하고 룩업 테이블을 활용함.
- 모델 성능 — 15M 파라미터 모델을 사용하며 하드 드라이브에서 직접 로드하여 구동함.
- 향후 계획 — 듀얼 코어 활용 및 아이팟 테마의 로컬 음악 추천 모델 구현을 목표로 함.

하드웨어: PortalPlayer PP5022, ARM7TDMI @ 80 MHz, 64 MB ram
아이팟 비디오 5.5G에서 Karpathy의 llama2.c TinyStories 모델을 돌리는 재밌는 락박스(Rockbox) 플러그인을 만들어 봤다.
FPU가 없어서 llama2.c의 int8 runq.c를 정수 연산만 쓰도록 포팅했음. 룩업 테이블을 써서 exp/softmax를 구현했고, RMSNorm에는 정수 제곱근을 사용했다.
15M 모델이 17MB라 하드 드라이브에서 음악 버퍼로 바로 로딩된다. 아쉽게도 이거 돌아가는 동안에는 음악 못 들음 ㅋㅋ
나중에는 코어 두 개 다 써서 돌려보고 싶고, 아이팟 테마에 맞춰서 로컬 음악 추천해 주는 모델도 만들어 볼 생각임.

