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%