Flash-MoE: 순수 C/Metal로 MacBook Pro에서 397B 파라미터 Qwen 모델 실행하기

✍️ OpenClawRadar📅 게시일: March 22, 2026🔗 Source
Flash-MoE: 순수 C/Metal로 MacBook Pro에서 397B 파라미터 Qwen 모델 실행하기
Ad

기술 구현

Flash-MoE는 3970억 개의 파라미터를 가진 Mixture-of-Experts 모델인 Qwen3.5-397B-A17B를 실행합니다. 이 모델은 60개의 트랜스포머 레이어로 구성되어 있습니다: 45개의 GatedDeltaNet(선형 어텐션) + 15개의 표준 전체 어텐션. 각 레이어에는 512개의 전문가가 있으며, 토큰당 K=4가 활성화되고 하나의 공유 전문가가 추가됩니다. 은닉 차원은 4096입니다.

성능 벤치마크

  • 4비트 전문가, FMA 커널: 초당 4.36 토큰, 우수한 품질, 전체 도구 호출 지원, 디스크 209GB (현재 최고)
  • 4비트 전문가, 기준선: 초당 3.90 토큰, 우수한 품질
  • 2비트 전문가, OS 신뢰: 초당 5.74 토큰, 양호한 품질, 디스크 120GB (JSON/도구 호출 손상)
  • 2비트 피크 단일 토큰: 초당 7.05 토큰, 양호한 품질 (도구 사용에 적합하지 않음)

참고: 2비트 양자화는 JSON 출력에서 "name" 대신 \name\을 생성하여 도구 호출을 신뢰할 수 없게 만듭니다. 4비트가 프로덕션 구성입니다.

하드웨어 요구사항

  • 머신: Apple M3 Max 탑재 MacBook Pro
  • 칩: 16코어 CPU (12P + 4E), 40코어 GPU, 16코어 ANE
  • 메모리: 48 GB 통합 (~400 GB/s 대역폭)
  • SSD: 1TB Apple Fabric, 순차 읽기 17.5 GB/s (측정값)
  • macOS: 26.2 (Darwin 25.2.0)
Ad

핵심 기술

SSD 전문가 스트리밍

전문가 가중치(4비트 기준 209GB)는 GCD 디스패치 그룹을 통한 병렬 pread()로 NVMe SSD에서 요청 시 읽힙니다. 레이어당 활성화된 K=4 전문가만 로드됩니다(각각 ~6.75MB). OS 페이지 캐시는 커스텀 캐시 없이 캐싱을 관리하며("OS 신뢰" 원칙), 자연스럽게 ~71% 적중률을 달성합니다.

FMA 최적화 역양자화 커널

4비트 역양자화된 행렬-벡터 곱셈의 내부 루프는 수학을 (니블 * 스케일 + 바이어스) * x에서 fma(니블, 스케일*x, 바이어스*x)로 재배열합니다. 스케일*x와 바이어스*x를 사전 계산하면 GPU의 융합 곱셈-덧셈 유닛이 역양자화+곱셈을 한 번의 명령어로 수행할 수 있어, 순진한 구현보다 12% 더 빠른 성능을 제공합니다.

Metal 컴퓨트 셰이더

수작업으로 작성된 Metal 커널은 다음을 포함합니다:

  • 4비트 및 2비트 역양자화된 행렬-벡터 곱셈 (타일화, SIMD 축소, 공유 입력 캐시, FMA 최적화)
  • 융합 SwiGLU 활성화
  • RMS 정규화 (2단계: 제곱합 축소 + 적용)
  • 전체 어텐션 레이어를 위한 배치 GPU 어텐션 (Q@K^T, 소프트맥스, 점수@V)
  • GPU RoPE (Q 디인터리브 및 K 정규화와 융합)
  • MoE 결합 + 잔차 + 시그모이드 게이트 (융합 커널)

지연 GPU 전문가 계산

CMD3(전문가 순전파)는 대기 없이 제출됩니다. GPU는 CPU가 다음 레이어를 준비하는 동안 이를 실행합니다. 결합 + 잔차 + 정규화도 GPU에서 수행되어 다음 레이어의 어텐션 투영에 직접 공급됩니다.

선형 어텐션을 위한 Accelerate BLAS

GatedDeltaNet 순환은 64-헤드 × 128×128 상태 행렬 업데이트에 cblas_sscal, cblas_sgemv 및 cblas_sger를 사용하여 스칼라 코드보다 64% 더 빠른 성능을 달성합니다.

파이프라인 성능

4비트 기준 레이어당 평균: 4.28ms

  • CMD3(이전) → CMD1: 어텐션 투영 + 델타-넷 [1.22ms GPU]
  • CPU: 결과 플러시 [0.01ms CPU]
  • CMD2: o_proj + 정규화 + 라우팅 + 공유 [0.55ms GPU]
  • CPU: 소프트맥스 + topK 라우팅 [0.003ms]
  • I/O: 병렬 pread K=4 전문가 [2.41ms SSD]
  • CMD3: 전문가 순전파 + 결합 + 정규화 [0.04ms 인코딩, 지연됨]

아키텍처 제약

Apple Silicon에서 SSD DMA와 GPU 계산은 동일한 메모리 컨트롤러를 공유하며 효율적으로 중첩될 수 없습니다. GPU의 역양자화 커널은 ~418 GiB/s에서 대역폭 포화 상태입니다. 심지어 작은 백그라운드 SSD DMA도 메모리 컨트롤러 중재를 통해 불균형적으로 큰 GPU 지연 급증을 유발하여 직렬 파이프라인이 필요합니다.

📖 전체 소스 읽기: HN AI Agents

Ad

👀 See Also

Vibe Remote: 어디서나 Claude 코드에 접근할 수 있는 모바일 브리지
Tools

Vibe Remote: 어디서나 Claude 코드에 접근할 수 있는 모바일 브리지

Vibe Remote는 휴대폰에서 Claude Code 개발 환경에 원격으로 접근할 수 있는 모바일 앱으로, 사용자가 Tailscale이나 복잡한 VPN 설정 없이도 로컬 설정, Git 기록, 파일 트리를 유지할 수 있게 해줍니다.

OpenClawRadar
루델: 클로드 코드 세션을 위한 오픈소스 분석 도구
Tools

루델: 클로드 코드 세션을 위한 오픈소스 분석 도구

Rudel은 Claude Code 세션을 분석하는 오픈소스 분석 도구로, 1,573개의 실제 세션에서 1,500만 개 이상의 토큰과 27만 건 이상의 상호작용을 통찰합니다. 4%의 스킬 사용률, 26%의 중단률, 오류 연쇄 패턴과 같은 패턴을 밝혀냅니다.

OpenClawRadar
포켓봇: iOS용 로컬 AI 자동 조종 장치, 앱 인텐트와 온디바이스 추론 활용
Tools

포켓봇: iOS용 로컬 AI 자동 조종 장치, 앱 인텐트와 온디바이스 추론 활용

PocketBot은 iPhone의 Neural Engine에서 Metal을 통해 양자화된 3B Llama 모델을 로컬로 실행하는 iOS 앱으로, Apple의 AppIntents 및 CoreLocation 프레임워크를 사용하여 클라우드 데이터 전송 없이 이벤트 기반 자동화를 생성합니다.

OpenClawRadar
클로드 코드의 읽기 도구가 이미지 해상도를 묵시적으로 낮추어 환각을 유발함
Tools

클로드 코드의 읽기 도구가 이미지 해상도를 묵시적으로 낮추어 환각을 유발함

Claude Code의 `read` 도구는 모델이 이미지를 보기 전에 조용히 해상도를 낮추어, 스크린샷에서 텍스트를 추출할 때 출력 품질이 저하되고 인식하지 못한 환각 현상이 발생하게 됩니다.

OpenClawRadar