
AMD Ryzen AI MAX+ 395에서 DeepSeek V4 Flash, 최대 32 tok/s 달성
요약
AMD Ryzen AI MAX+ 395 하드웨어에서 DeepSeek V4 Flash 모델을 구동하여 최대 32 tok/s의 디코드 속도를 달성했습니다. ROCmFPX 기술을 활용한 혼합 정밀도 양자화 방식을 통해 128GB 통합 메모리 환경에서 효율적인 추론 성능을 구현했습니다.
핵심 포인트
- Ryzen AI MAX+ 395에서 DeepSeek V4 Flash 최대 32 tok/s 달성
- ROCmFPX 기반의 혼합 정밀도(mixed-precision) 양자화 기술 적용
- 128GB 통합 메모리를 활용한 대규모 모델 최적화 성공
- 기존 LocalMaxxing 기록 대비 최대 2.05배 높은 성능 기록
동료 llama 여러분 안녕하세요. Strix Halo 소유자분들에게 유용할 만한 새로운 소식이 있어 공유하고자 합니다. 짧게 말씀드리자면, 128 GB의 통합 메모리(unified memory)를 갖춘 단일 Ryzen AI MAX+ 395에서 DeepSeek V4 Flash와 그 투기적 초안(speculative draft) 모델을 탑재하는 데 성공했으며, 사용 가능한 디코드 속도(decode rate)를 확보했습니다. 모든 세부 사항이 담긴 블로그 포스트는 여기에서 확인하실 수 있습니다: https://www.lucebox.com/blog/deepseek-v4-strix-halo (코드는 오픈 소스이며 Apache-2.0 라이선스입니다). 저희는 이 실행 결과를 LocalMaxxing에 제출했습니다. 7월 25일 기준으로, Radeon 8060S에 대한 차기 최고 속도 DeepSeek V4 Flash 기록은 HipFire의 18.99 tok/s였습니다. 해당 사이트의 Ryzen AI Max 395 통합 메모리 그룹 내 이전 최고 기록은 DwarfStar의 15.6 tok/s였습니다. 이로써 저희의 실행 결과는 HipFire보다 68.5% 앞서며, DwarfStar 결과의 2.05배에 달합니다. 이는 통제된 A/B 테스트가 아니라 위에 표시된 공개 LocalMaxxing 기록들과의 비교입니다.
ROCmFPX: 284B 가중치를 128 GB에 맞추는 ROCmFPX는 단일 양자화(quantization) 형식이 아닙니다. 이는 AMD ROCm/HIP 경로를 기반으로 구축된 블록 형식(block formats) 제품군입니다. 각 블록은 팩킹된 저비트 코드(low-bit codes)로서 32개의 가중치와 하나 또는 두 개의 작은 스케일(scales)을 보유합니다. ROCmFP2는 블록을 10바이트에 저장하여 가중치당 2.50비트를 사용하며, ROCmFP3는 가중치당 3.50비트를 사용하고, 빠른 ROCmFP4 레이아웃은 4.25비트를 사용합니다. DeepSeek V4 Flash를 위해 저희는 누락된 2비트 형식과 해당 HIP 커널(kernels)을 추가한 후, Strix 전용 혼합 정밀도(mixed-precision) 레시피를 구축했습니다. 거대한 라우티드-엑스퍼트 게이트(routed-expert gate) 및 업 매트릭스(up matrices)는 ROCmFP2를 사용하고, 엑스퍼트 다운 프로젝션(expert down projections)은 ROCmFP3를 사용하며, 밀집(dense) 또는 더 민감한 프로젝션은 ROCmFP4 또는 더 높은 정밀도를 유지합니다. 양자화 과정에서 중요도 행렬(importance matrix)을 사용하였고 모델의 MTP 헤드(head)를 유지했습니다. 최종 102.3 GB 목표치는 파라미터당 약 2.88비트에 해당합니다. 파일 이름이 ROCmFP2인 이유는 모든 텐서(tensor)가 2비트이기 때문이 아니라, 그것이 지배적인(dominant) 형식이기 때문입니다.
측정 항목 | 구성
하드웨어: Ryzen AI MAX+ 395, Radeon 8060S ( gfx1151 ), 128 GB LPDDR5X
대상: DeepSeek-V4-Flash-ROCMFP2-STRIX.gguf , 102.3 GB
초안 (Draft): DeepSeek-V4-Flash-DSpark-draft-Q4RMFP4-denseF16.gguf , 11.3 GB
런타임 (Runtime): ROCm 7.2.4, HIP gfx1151
플랫폼 성능: Radeon high (2.9 GHz 관측됨), q=4 검증 캡 (verification cap)
서버 컨텍스트: 공개된 설정에서 8,192 토큰
디코딩 (Decode): 최대 32 tok/s
ROCMFPX가 가중치 트래픽 (weight traffic)을 처리합니다. 그런 다음 모델의 하이퍼 커넥션 (hyper-connections), 어텐션 (attention), 라우팅 (routing) 및 전문가 작업 (expert work)을 위해 DeepSeek 전용 HIP 디코딩 경로를 추가했습니다. 투기적 초안 (speculative draft)이 없을 때, 해당 대상은 자기회귀 (autoregressive) 방식으로 25.31 tok/s로 실행됩니다.
DSpark가 다음 단계입니다. q=4 배치 (batch)를 사용하면, 이 작은 초안이 최대 3개의 새로운 토큰을 제안하고 284B 대상 모델이 현재 시드 (seed)를 포함하여 4개의 위치를 하나의 융합된 패스 (fused pass)로 검증합니다.
01 · 제안 (propose); DSpark 초안 = 캡처된 대상 특징 (target features)으로부터 다음 몇 개의 토큰을 제안하는 컴팩트한 3계층 초안입니다.
02 · 검증 (verify); q=4 대상 패스 = 284B 대상 모델이 융합된 HIP 그래프를 통해 여러 위치를 동시에 확인합니다.
03 · 커밋 (commit); 수락된 접두사 (accepted prefix) = 올바른 제안은 한 단계로 커밋되며, 대상 모델이 첫 번째 미스 (miss)를 수정합니다.
q=4 캡 (cap)과 적응형 너비 (adaptive width) 비활성화 상태에서, 공개 실행 결과는 32.0 tok/s에 도달했으며, 이는 25.31 tok/s의 자기회귀 (autoregressive) 결과보다 26.4% 높은 수치입니다. 이 이득은 대상 모델이 얼마나 많은 초안 토큰을 수락하느냐에 따라 달라집니다.
희소 프리필 (Sparse prefill): 약 250 tok/s
공개된 LocalMaxxing 요청에 따르면 --ds4-prefill sparse 옵션 사용 시 245 tok/s의 프리필 (prefill) 속도를 보고했습니다. 별도의 7,960 토큰 검증에서는 인덱싱된 희소 프리필 (indexed sparse prefill)이 251.79 tok/s에 도달했으며, 8K 케이스는 246.8에서 255.9 tok/s 사이였습니다. 약 24K 토큰에서는 처리량 (throughput)이 221.9 tok/s였습니다.
희소 프리필 (Sparse prefill)은 DeepSeek V4의 학습된 인덱서 (learned indexer)를 사용하여 압축된 히스토리 어텐션 (compressed-history attention)을 제한합니다. 또한 작업을 레이어별로 배치 (batch)하는데, 이는 부동 소수점 감소 (floating-point reduction) 순서를 변경합니다. 출력 결과가 토큰 단위의 정확한 프리필 (tokenwise exact prefill)과 바이트 단위로 일치하지 않으므로, 희소 모드 (sparse mode)는 선택 사항 (opt-in)으로 유지됩니다.
이 모델은 당사의 소규모 GSM8K 세트에서 10/10점을 기록했으며, HumanEval 스모크 테스트(smoke set)에서 3/3점을 기록했습니다. 아직 광범위한 품질 평가를 수행하지는 않았습니다. 실행 재현 방법: ROCm 7.2.4가 이미 설치된 128 GB Strix Halo 머신에서 시작합니다:
sudo apt-get update
sudo apt-get install -y build-essential cmake git ninja-build curl
hipblas-dev hipcub-dev rocblas-dev rocprim-dev rocwmma-dev
git clone --branch main --recurse-submodules
https://github.com/Luce-Org/lucebox.git
cd lucebox
cmake -S server -B server/build-hip -G Ninja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_HIP_COMPILER=/opt/rocm/lib/llvm/bin/clang++
-DDFLASH27B_GPU_BACKEND=hip
-DDFLASH27B_HIP_ARCHITECTURES=gfx1151
-DDFLASH27B_HIP_SM80_EQUIV=ON
-DCMAKE_HIP_FLAGS=-DDFLASH_WAVE_SIZE=32
-DGGML_HIP_MMQ_MFMA=ON
-DGGML_HIP_NO_VMM=ON
-DGGML_HIP_GRAPHS=OFF
cmake --build server/build-hip --target dflash_server -j"$(nproc)"
ROCmFPX 타겟과 DSpark draft를 다운로드한 다음, 측정 프로필을 시작합니다:
mkdir -p models
curl -L -C - --retry 5
-o models/DeepSeek-V4-Flash-ROCMFP2-STRIX.gguf
"https://huggingface.co/Lucebox/DeepSeek-V4-Flash-ROCMFPX/resolve/main/DeepSeek-V4-Flash-ROCMFP2-STRIX.gguf"
curl -L -C - --retry 5
-o models/DeepSeek-V4-Flash-DSpark-draft-Q4RMFP4-denseF16.gguf
"https://huggingface.co/Lucebox/DeepSeek-V4-Flash-DSpark-Drafter-GGUF/resolve/main/DeepSeek-V4-Flash-DSpark-draft-Q4RMFP4-denseF16.gguf"
MODEL="$PWD/models/DeepSeek-V4-Flash-ROCMFP2-STRIX.gguf"
DRAFT="$PWD/models/DeepSeek-V4-Flash-DSpark-draft-Q4RMFP4-denseF16.gguf"
echo performance | sudo tee /sys/firmware/acpi/platform_profile
sudo /opt/rocm/bin/rocm-smi -d 0 --setperflevel high
printf '0\n' > /tmp/ds4_awidth
printf '4\n' > /tmp/ds4_spec_q
DFLASH_DS4_SPEC=1
DFLASH_DS4_FUSED_VERIFY=1
DFLASH_DS4_SPEC_Q=4
DFLASH_DS4_TIMING=1
DFLASH_DS4_DRAFT="$DRAFT"
LUCE_MMVQ_MAX_NCOLS=4
./server/build-hip/dflash_server "$MODEL"
--target-device hip:0
--host 127.0.0.1 --port 8000
--max-ctx 8192 --default-max-tokens 2048
--chunk 2048
--ds4-prefill sparse \ --ds4-fused-decode \ --ds4-expert-top-k 4 \ --prefix-cache-slots 0 --prefill-cache-slots 0 \ --disk-prefix-cache off 모델을 한 번 예열(Warm)한 후 temperature: 0을 사용하세요. 서버는 [deepseek4] DSpark 디코딩(decode) 라인에 디코딩 속도를 출력합니다. DFLASH_DS4_SPEC_Q=4는 DS4 검증 한도(verification cap)를 설정합니다; --verify-width는 Laguna 옵션이며 여기서는 사용되지 않습니다. 구현 과정에서 정확한 상태 처리(state handling)를 위해 압축기 경계(compressor boundary)에서 배치를 단축할 수 있습니다. 처리량(Throughput)은 프롬프트 형태(prompt shape)와, 디코딩(decode)의 경우 대상이 얼마나 많은 DSpark 제안(proposals)을 수락하느냐에 따라 달라집니다. 만약 정확한 프리필(exact prefill)로 전환하거나 모델의 6개 전문가(experts)를 복구한다면, 해당 수치들은 더 이상 적용되지 않습니다. 별도의 통합 브랜치(integration branch)나 프라이빗 패치(private patch)는 필요하지 않습니다. ------- 물론 어떤 피드백이든 대환영입니다 :) /u/sandropuppo 제출 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기