Strix Halo 사용자라면, 거절된 PR을 통해 MoE의 PP를 최대 30%까지 향상시킬 수 있습니다.
요약
AMD Strix Halo 사용자를 위해 llama.cpp에서 MoE 모델의 PP(Prompt Processing) 성능을 최대 30% 향상시킬 수 있는 최적화 방법을 소개합니다. 이 방법은 거절된 PR의 코드를 직접 적용하여 낮은 컨텍스트 환경에서 큰 성능 이득을 얻을 수 있습니다.
핵심 포인트
- MoE 모델 전용 최적화 기법 적용 가능
- Strix Halo 하드웨어에서 PP 성능 최대 30% 향상
- 낮은 컨텍스트 환경에서 가장 높은 효율 발휘
- llama.cpp 메인라인 미포함 코드를 직접 적용하여 사용
pedapudi가 작성한 PR (Pull Request)입니다.
이 머지 리퀘스트 (Merge Request)는 거절되었기 때문에 llama.cpp의 메인라인 (mainline)에는 포함되지 않을 것입니다. 변경 사항이 매우 작기 때문에 저는 현재 llama.cpp 릴리스 (release) 버전에 직접 적용했습니다.
더 자세한 정보는 PR을 읽어보시기 바랍니다. 이 방식은 MoE (Mixture of Experts)에서만 작동합니다. 또한, 낮은 컨텍스트 (context)에서 가장 큰 성능 향상을 보입니다. 컨텍스트가 높아질수록 이득은 줄어듭니다. Pedapudi는 PR에서 왜 이런 현상이 발생하는지 설명하고 있습니다.
다음은 수치 데이터입니다. 정말 효과가 좋습니다. 현재 llama.cpp 릴리스에 코드를 적용하는 데 걸린 아주 짧은 시간은 충분히 가치 있는 시간이었습니다.
main
ggml_cuda_init: found 1 ROCm devices (Total VRAM: 128000 MiB):
Device 0: AMD Radeon Graphics, gfx1151 (0x1151), VMM: no, Wave Size: 32, VRAM: 128000 MiB
| model | size | params | backend | ngl | mmap | test | t/s |
| ------------------------------ | ---------: | ---------: | ---------- | --: | ---: | --------------: | -------------------: |
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 | 1106.11 ± 8.60 |
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d10000 | 755.79 ± 2.58 |
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d20000 | 587.61 ± 1.52 |
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d40000 | 415.09 ± 2.45 |
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d60000 | 316.89 ± 2.35 |
PR
ggml_cuda_init: 1개의 ROCm 장치를 찾았습니다 (총 VRAM: 128000 MiB):
장치 0: AMD Radeon Graphics, gfx1151 (0x1151), VMM: 아니요, Wave Size: 32, VRAM: 128000 MiB
| 모델명 | 크기 | 파라미터 | 백엔드 | ngl | mmap | 테스트 | 초당 성능 (t/s) |
| ------------------------------ | ---------: | ---------: | ---------- | --: | ---: | --------------: | -------------------: |
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 | 1447.62 ± 7.10 | +31%
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d10000 | 905.60 ± 3.53 | +20%
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d20000 | 685.23 ± 3.03 | +16%
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d40000 | 459.42 ± 2.70 | +11%
| qwen35moe 35B.A3B Q4_K - Small | 19.45 GiB | 34.66 B | ROCm | 99 | 0 | pp512 @ d60000 | 342.41 ± 2.43 | +8%
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기