AMD Strix Halo에서 Luce DFlash + PFlash 성능: llama.cpp HIP 대비 Qwen3.6-27B 2.23배 디코드 및 3.05배 프리필 속도 향상
Luce DFlash + PFlash on AMD Strix Halo: Qwen3.6-27B at 2.23x decode and 3.05x prefill vs llama.cpp HIP
핵심 요약
AMD Strix Halo 환경에서 Luce DFlash와 PFlash를 활용해 Qwen3.6-27B 모델의 추론 속도를 대폭 개선함.
- 성능 향상 — llama.cpp HIP 대비 디코드 2.23배, 프리필 3.05배 속도 달성함.
- 하드웨어 최적화 — Ryzen AI MAX+ 395 및 128GB 통합 메모리 환경에서 최적화됨.
- 기술적 한계 — 현재 PFlash는 손실 압축 방식이며, 일부 커널 최적화가 진행 중임.
- 코드 품질 논쟁 — 이전 3090 테스트 당시의 불안정성 문제로 인해 사용자들의 비판이 제기됨.
동료 Llama 여러분, 짧게 말씀드리겠습니다.
저희는 방금 AMD Ryzen AI MAX+ 395 iGPU(gfx1151, Strix Halo, 128 GiB 통합 메모리)에 대한 DFlash 및 PFlash 지원을 출시했습니다. 몇 주 전 RTX 3090 포스트에서 다뤘던 것과 동일한 Luce DFlash 스택을 이제 소비자용 AMD APU 클래스에서 실행할 수 있습니다.
저장소: https://github.com/Luce-Org/lucebox-hub (MIT)
TL;DR
Luce Q8_0 DFlash 드래프터를 사용한 Qwen3.6-27B Q4_K_M에서의 엔드 투 엔드 성능: 16K 컨텍스트에서 26.85 tok/s 디코드 및 20.2초 프리필.
이는 동일한 실리콘에서 llama.cpp HIP보다 디코드는 2.23배, 프리필은 3.05배 더 빠른 속도입니다. 16K 프롬프트 + 1K 생성 작업에서 전체 작업 시간은 147초에서 58초로 단축되어, 엔드 투 엔드 기준으로 2.5배 더 빠릅니다.
동일한 128 GiB 박스는 24 GiB 소비자용 GPU로는 감당할 수 없는 약 100 GiB 크기의 체크포인트(Qwen3.5-122B-A10B, MiniMax-M2.7-REAP 139B-A10B, 전체 BF16 27B)를 호스팅할 수 있습니다.
수치
하드웨어: Ryzen AI MAX+ 395, Radeon 8060S iGPU (gfx1151), 128 GiB LPDDR5X-8000, ROCm 7.2.2
대상: Qwen3.6-27B Q4_K_M (15.65 GiB)
드래프터: Lucebox/Qwen3.6-27B-DFlash-GGUF Q8_0 (DFLASH27B_DRAFT_SWA=2048 적용)
벤치마크: 10-prompt HumanEval-style, --n-gen 128 --ddtree-budget 22 --fast-rollback
디코드 (Qwen3.6-27B Q4_K_M, tok/s):
|엔진|tok/s|vs AR|
|:-|:-|:-|
|llama.cpp HIP AR|12.02|1.00x|
|llama.cpp Vulkan AR|12.45|1.04x|
|Luce DFlash (이번 PR)|26.85|2.23x|
프리필 (Qwen3.6-27B, 16K 토큰):
|엔진|TTFT|vs AR|
|:-|:-|:-|
|llama.cpp HIP AR|61.69 s|1.00x|
|Luce PFlash|20.2 s|3.05x|
속도 향상은 컨텍스트가 길어질수록 커집니다. PFlash 압축은 O(S)인 반면, AR 프리필은 O(S^2)입니다. NIAH 검색은 16K에서도 여전히 통과합니다.
튜닝 참고: --ddtree-budget=22는 gfx1151의 최적값입니다. 예산이 높으면 단계당 더 많은 토큰을 수용하지만, LPDDR5X에서는 각 단계가 더 비싸집니다. 대역폭은 타일 활용도가 이득을 보기 전에 한계를 설정합니다. gfx1100(7900 XTX, GDDR6 936 GB/s)과 대조하면 budget=8이 승리하는데, 이는 타일 낭비가 시작 최적화보다 더 중요하기 때문입니다. 기본 출시는 아키텍처를 인식합니다.
재현 방법
# 1. gfx1151용 PR #119 빌드
git clone https://github.com/Luce-Org/lucebox-hub.git
cd lucebox-hub
git fetch origin pull/119/head:pr119 && git checkout pr119
git submodule update --init --recursive
cd dflash
cmake -B build -S . \
-DCMAKE_BUILD_TYPE=Release \
-DDFLASH27B_GPU_BACKEND=hip \
-DDFLASH27B_HIP_ARCHITECTURES=gfx1151 \
-DDFLASH27B_HIP_SM80_EQUIV=ON
cmake --build build --target test_dflash -j
# 2. 모델: Qwen3.6-27B 대상 + Lucebox Q8_0 DFlash 드래프터
mkdir -p models/draft
hf download unsloth/Qwen3.6-27B-GGUF Qwen3.6-27B-Q4_K_M.gguf --local-dir models/
hf download Lucebox/Qwen3.6-27B-DFlash-GGUF dflash-draft-3.6-q8_0.gguf --local-dir models/draft/
# 3. 벤치마크 (DFlash 디코드 + PFlash 긴 컨텍스트 프리필)
LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH \
DFLASH_BIN=$PWD/build/test_dflash \
DFLASH_TARGET=$PWD/models/Qwen3.6-27B-Q4_K_M.gguf \
DFLASH_DRAFT=$PWD/models/draft/dflash-draft-3.6-q8_0.gguf \
DFLASH27B_DRAFT_SWA=2048 \
DFLASH27B_PREFILL_UBATCH=512 \
python3 scripts/bench_he.py --n-gen 128 --ddtree-budget 22


