LocalLLaMA, Apple Silicon에서 DFlash로 Qwen 추론 2~3배 가속 보고

LocalLLaMA가 테스트한 내용

2026-04-11 r/LocalLLaMA에 올라온 글은 M5 Max 64GB 환경에서 Apple Silicon용 native MLX DFlash 구현을 시험한 결과를 공유했다. 작성자는 작은 draft model이 16 token을 병렬로 생성하고, target model이 이를 한 번의 forward pass로 verify하며, 최종 output은 greedy baseline과 bit-for-bit identical하다고 설명했다. local inference 사용자에게 이 대목이 중요한 이유는, quality tradeoff가 아니라 systems optimization으로 speedup을 제시하기 때문이다.

게시된 수치도 꽤 눈에 띈다. Qwen3.5-9B bf16에서는 1024 token generation 기준 DFlash 85 tok/s, baseline 26 tok/s, 2048 token에서는 80 대 26으로 적혔다. Qwen3.5-4B bf16은 1024에서 109 대 41, 2048에서 133 대 42를 기록했다고 한다. quantized Qwen3.5-27B에서도 4bit와 8bit 설정에 따라 약 1.7배에서 2.5배 speedup을 보고했다.

실제로 숫자를 움직인 요소

이 글이 좋은 이유는 무엇을 했는지까지 적어놨기 때문이다. 작성자에 따르면 Qwen3.5-9B의 head_dim=256을 위해 MLX에 작은 patch를 넣어 더 빠른 attention path를 열었고, runtime을 재구성해 cycle당 GPU-to-CPU sync를 두 번에서 한 번으로 줄였으며, 분리된 QKV projection을 한 번의 matmul plus split으로 합쳤다. acceptance rate는 전반적으로 80%에서 87% 수준이라고 했다.

부정적 결과를 같이 적은 점도 의미가 있다. unified memory를 쓰는 Apple hardware에서는 custom Metal kernel이 항상 이기지 않았고, batched GEMV, fused gated SiLU, custom SDPA가 stock MLX kernel보다 오히려 느렸다고 한다. 또 verify cost가 4 token에서 16 token으로 늘어나도 거의 평평하게 유지돼, 이 환경에서는 token 수보다 weight loading이 bottleneck일 수 있다고 본다. quantized target에서는 verifier보다 draft model이 병목으로 바뀌는 구조도 관찰됐다고 한다.

로컬 LLM 추론에 주는 시사점

더 큰 메시지는 Apple Silicon 최적화가 이제 CUDA tuning의 축소판이 아니라 별도 discipline처럼 보인다는 점이다. discrete GPU에서 직관적으로 맞아 보이는 기법이 unified memory, MLX kernel, quantized verification path 위에서는 그대로 통하지 않을 수 있다. 그래서 이런 firsthand community report의 가치가 커진다.

작성자는 구현이 아직 work in progress이며 open source로 공개되지는 않았다고 밝혔다. 그래도 이 글은 다음 세대 local LLM speedup이 어디서 나올 수 있는지 꽤 선명하게 보여준다. exact speculative decoding, targeted runtime surgery, 그리고 model size와 quantization에 따라 draft와 verify의 균형이 어떻게 바뀌는지에 대한 더 정교한 이해가 핵심이 될 가능성이 크다.

Source links: Reddit thread, DFlash paper.