피드로 돌아가기
Hypura – 애플 실리콘용 저장 계층 인식 LLM 추론 스케줄러
GeekNewsGeekNews
Backend

Hypura – 애플 실리콘용 저장 계층 인식 LLM 추론 스케줄러

Hypura가 GPU·RAM·NVMe 간 텐서 배치 최적화로 32GB Mac에서 40GB 이상 LLM 모델을 0.3~2.2 tok/s로 실행

xguru2026년 3월 25일12advanced

Context

소비자용 Mac은 빠른 통합 메모리와 NVMe를 갖추었으나 용량이 제한적이다. 32GB M1 Max에서 40GB 모델을 직접 로드하면 스왑이 폭주하고 결국 OOM으로 추론이 불가능해진다. 기존 llama.cpp는 물리 메모리를 초과하는 모델에서 실행을 포기한다.

Technical Solution

  • 텐서 역할 기반 3계층 배치: Attention·Norm·Embedding은 GPU(Metal)에, 오버플로 계층은 RAM에, 나머지는 NVMe에 배치해 메모리 초과 모델도 로드 가능
  • MoE 전문가 라우팅 최적화: 라우터 인터셉션으로 활성 전문가만 식별 후 NVMe에서 로드하고, 공동 활성화 추적으로 다음 활성 전문가를 사전 프리패치해 I/O 75% 감소
  • NVMe 스트리밍 버퍼 관리: 동적 풀 버퍼와 자동 프리패치 깊이 조정으로 Dense FFN 레이어(모델 크기의 약 60%)를 NVMe에서 효율적으로 스트리밍
  • 하드웨어 기반 자동 모드 선택: Full-resident(메모리 내 완전 로드), Expert-streaming(MoE 모델용 비전문가만 상주), Dense FFN-streaming(비-MoE 대형 모델용)을 모델 크기와 하드웨어에 따라 자동 선택
  • 읽기 전용 NVMe 접근: pread() + F_NOCACHE로 읽기만 수행해 SSD 쓰기 횟수를 최소화하고 수명 영향 제거

Impact

  • 32GB M1 Max에서 Qwen 2.5 14B Q4_K_M을 21 tok/s로 실행(GPU 완전 적재 시)
  • Mixtral 8x7B Q5_K_M(30.9GB)을 2.2 tok/s로 Expert-streaming 모드에서 실행, 99.5% 캐시 적중률 달성
  • Llama 3.3 70B Q4_K_M(39.6GB)을 0.3 tok/s로 Dense FFN-streaming 모드에서 실행
  • 기존 llama.cpp가 OOM으로 실패하던 모델까지 안정적으로 구동 가능

Key Takeaway

메모리 제약 환경에서 LLM 추론 가능성의 핵심은 물리 메모리 용량보다 GPU·RAM·스토리지 간 접근 패턴 분석과 대역폭 효율화다. MoE 모델의 희소 활성화를 라우팅 수준에서 감지해 필요한 부분만 스트리밍하면, 순차 읽기 특성을 갖는 NVMe에서도 안정적인 추론을 구현할 수 있다.


Apple Silicon Mac에서 초과용량 LLM을 로컬에서 실행해야 하는 개발자는 Hypura의 저장 계층 인식 스케줄러 패턴을 도입해, 텐서를 GPU·RAM·NVMe에 역할별로 분산 배치하고 NVMe 접근 시 활성 전문가만 라우팅해 로드하면 기존 mmap 방식 대비 토큰 생성 속도와 안정성을 동시에 확보할 수 있다.

원문 읽기