본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 28. 06:25

18년 된 RTOS 내부의 에뮬레이션된 90년대 CPU에서 실행되는 260K 파라미터 LLM

요약

18년 된 RTOS와 90년대 CPU 에뮬레이터 환경에서 260K 파라미터 규모의 초소형 LLM을 실행하는 데 성공한 프로젝트입니다. FPU가 없는 환경을 극복하기 위해 INT8 양자화와 정수 연산 최적화 기법을 적용했습니다.

핵심 포인트

  • Freescale ColdFire CPU 에뮬레이터 내 RTOS 구현
  • INT8 양자화를 통한 정수 연산 기반 행렬 곱셈 최적화
  • Carmack의 빠른 역 제곱근 및 룩업 테이블 활용
  • 토큰당 2~4초의 속도로 TinyStories 스타일 영어 생성

이 서브레딧이 황당한 LLM 프로젝트들을 정말 좋아한다는 것을 알고 있기에, 새로운 Qwen 3.7 모델이 출시되기를 기다리는 동안 저의 기여분을 공유합니다!

저는 Freescale ColdFire MCF5307을 위한 맞춤형 JavaScript 에뮬레이터 내부에서 실행되는 RTOS(실시간 운영체제) 안에서 아주 작은 LLM을 실행하는 데 성공했습니다. 이 CPU는 초기 Mac과 Sega Genesis를 구동했던 전설적인 Motorola 68K의 파생 모델입니다.

이 RTOS는 2008년 대학 임베디드 시스템 강의를 위해 세 명의 동기들과 함께 작성한 것입니다. 하드웨어와 원본 ROM이 사라지면서 시간 속에 잊혀졌었습니다. 몇 달 전, 저는 Claude와 Qwen을 사용하여 이를 되살리기로 결심했고, CPU 에뮬레이터를 처음부터 작성하고 커널 호출(kernel calls)로부터 ROM을 역공학(reverse-engineering)했습니다. 2008년의 원본 바이너리가 부팅되기 시작하자, 저는 완전히 인셉션(inception)처럼 에뮬레이션된 스택 위에서 LLM을 실행해보고 싶었습니다.

시작점으로, TinyStories로 학습된 Karpathy의 llama2.c와 stories260K 모델을 가져왔습니다. 가중치(weights)는 약 0.5MB 정도로, 커널 스택(kernel stack)을 축소하여 공간을 확보한 후 에뮬레이션된 16MB 메모리에 맞추기에는 빠듯하지만 들어가는 크기입니다. ColdFire에는 FPU(부동 소수점 장치)가 없기 때문에, 모든 부동 소수점 계산은 libgcc의 소프트웨어 에뮬레이션이 필요하며, 이는 토큰당 수백만 개의 에뮬레이션된 명령어가 필요함을 의미하므로 실행이 불가능한 수준입니다.

이를 해결하기 위해, 저는 모델을 행별 스케일 인자(per-row scale factor)를 가진 INT8로 양자화(quantized)하여, 핵심적인 행렬 곱셈(matmuls)을 순수 정수 연산으로 전환함으로써 내부 루프를 몇 개의 명령어로 줄였습니다. 행렬 곱셈 이외의 부동 소수점 연산에 대해서는, (Quake 게임에서 사용된) Carmack의 빠른 역 제곱근(fast inverse square root) 방식을 사용하고, 삼각 함수 계산을 피하기 위해 RoPE(Rotary Positional Embedding)를 위한 수많은 룩업 테이블(lookup tables)을 사용하는 고전적인 방식을 택했습니다. 에뮬레이션된 부동 소수점으로 남은 유일한 부분은 softmax/RMSnorm이지만, 이들은 호출 빈도가 충분히 낮아 여전히 상대적으로 빠르게 작동합니다.

전체 모델은 토큰당 2~4초라는 엄청난 속도로 출력을 내놓으며, 주로 일관성 있는 (때로는 기묘한) TinyStories 스타일의 영어를 생성합니다!

브라우저에서 직접 실행해 볼 수 있으며, 모델을 실행하려면 %a를 입력하기만 하면 됩니다. 궁금한 분들을 위해, 저의 전체 RTOS 고고학 프로젝트에 대한 더 자세한 글을 여기에 작성해 두었습니다.

물론 이것이 실용적인 용도로 쓰일 수는 없지만, 감자 수준 (potato-level)의 스택에서 LLM이 실행되는 것을 보는 것은 멋진 경험입니다. 저의 다음 단계는 원래의 하드웨어를 재구현하는 FPGA 위에 전체 스택을 올리는 것이며, 이를 통해 실제로 사용 가능한 속도까지 끌어올릴 수 있을 것입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0