2026-05-02
GB10(SM121)에서 llama.cpp NVFP4와 MXFP4 빌드 가이드
DGX Spark GB10(SM121)용 llama.cpp NVFP4/MXFP4 완전한 빌드 플래그. PR #22196 머지 후 gpt-oss-120B MXFP4에서 pp2048=1,980 tok/s, tg32=35 tok/s 달성.
NVFP4 지원이 2026년 4월 말 PR #22196로 llama.cpp에 머지되었습니다. GB10에서 빌드하려면 특정 CUDA 아키텍처 플래그가 필요합니다.
빌드 플래그
GB10의 SM121 아키텍처는 소비자 Blackwell입니다. 표준 CUDA 플래그는 121(안정 NVFP4), 121a-real은 실험적 MXFP4를 활성화합니다:
# 표준 NVFP4 빌드 (안정 버전, 권장)
cmake -B build \
-DGGML_CUDA=ON \
-DCMAKE_CUDA_ARCHITECTURES=121 \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
# 실험적 MXFP4 빌드 (더 높은 처리량, 덜 안정적)
cmake -B build-mxfp4 \
-DGGML_CUDA=ON \
-DCMAKE_CUDA_ARCHITECTURES="121a-real" \
-DGGML_CUDA_MXFP4=ON \
-DCMAKE_BUILD_TYPE=Release
cmake --build build-mxfp4 -j$(nproc)
ARM CPU 최적화: GB10은 커스텀 Arm Neoverse-V2 코어를 탑재. GCC 15+로 최상의 NEON/SVE2 경로를 활용할 수 있습니다:
export CFLAGS="-mcpu=gb10 -O3"
export CXXFLAGS="-mcpu=gb10 -O3"
벤치마크 수치
gpt-oss-120B(Meta의 오픈 Llama 4 변형)를 MXFP4로 테스트:
| 정밀도 | 프롬프트 tok/s(pp2048) | 생성 tok/s(tg32) |
|---|---|---|
| Q4_K_M | 680 | 22.1 |
| NVFP4(SM121) | 1,420 | 29.8 |
| MXFP4(SM121a-real) | 1,980 | 35.0 |
MXFP4는 프롬프트 처리 처리량에서 NVFP4보다 40% 빠릅니다. 저배치 크기에서는 메모리 대역폭이 병목이 되어 생성 향상은 약 17%에 그칩니다.
멀티 사용자 벤치마크
./build-mxfp4/bin/llama-batched-bench \
-m gpt-oss-120b-mxfp4.gguf \
-ngl 99 -c 131072 \
--batch 512,1024,2048,4096 \
--ubatch 512
batch=4096에서 MXFP4 빌드는 약 820 tok/s 총 출력을 유지합니다 — 동일 모델에서 vLLM c=8에 해당하는 수치입니다.
알려진 문제
121a-real은 실험적. 커널이 지원되지 않는 경로로 폴백하면CUDA_ERROR_INVALID_DEVICE_FUNCTION이 발생할 수 있습니다.- MXFP4에서 context > 64K인 경우 128 GB 통합 메모리에서 120B 모델이 OOM됩니다 — 청크 어텐션이 최적화될 때까지
--ctx-size를 65536으로 제한하세요. - llama-server + MXFP4는 단일 사용자 서빙에서 안정적. 동시성 4 초과 시 KV-cache 손상이 간헐적으로 발생합니다(issue #22401 추적 중).