Llama.cpp는 최근 Blackwell과 같은 Nvidia GPU (CC >= 90, ADA 제외)의 새로운 기능인 Programmatic Dependent Launch (PDL) 지원을 도입했습니다. (PR 22522 참조)
요약하자면, PDL은 커널 (kernel)의 더 효율적인 실행을 가능하게 하며, 결과적으로 더 나은 성능을 제공합니다. 현재까지는 기본적으로 활성화되어 있지 않으므로, 이를 모른다면 놓칠 가능성이 높습니다.
PDL을 활성화하려면 '-DGGML_CUDA_PDL=ON' 플래그와 함께 Llama.cpp를 빌드해야 합니다. 아직 모든 커널에 대해 활성화된 것은 아니며, 더 많은 커널이 PDL로 활성화되면 더 많은 성능 향상을 얻을 수 있을 것입니다.
(나중에 필요한 경우 PDL을 비활성화하려면, llama.cpp를 시작하기 전에 'export GGML_CUDA_PDL=0'을 실행하십시오.)
벤치마크 (Benchmarks)
| Model | pp512 | tg128 | pp512 @ PDL | tg128 @ PDL | pp % | tg % |
|---|
| Qwen 3.6 35B.A3B MXFP4 | 5412.39 ± 62.58 | 172.72 ± 3.94 | 5416.55 ± 58.92 | 183.03 ± 0.93 | 0 | 5.97 |
| ... | | | | | | |
| (모든 테스트는 b9282에서 실행되었으며, 결과는 RTX Pro 4500 Blackwell 32GB에서 두 번 측정된 값 중 최댓값입니다.) | | | | | | |
결론 (Conclusion)
Pre-fill 단계에서는 사실상 차이가 없으나, 위 테스트 결과에 따르면 토큰 생성 (token generation) 단계에서 평균 5%에서 6%의 성능 향상이 있습니다. PR에 따르면, 토큰 생성에서 약 4%에서 10% 사이의 개선이 기대됩니다.
언급했듯이, 빌드 시 기본적으로 활성화되지 않으므로, Blackwell을 사용 중이라면 이는 공짜 점심과 같으며 시도해 볼 가치가 있습니다.
업데이트: b9254 릴리스를 기준으로, 적절한 하드웨어를 갖추고 있다면 이제 기본적으로 활성화되어 있을 수도 있습니다. 여전히 GGML_CUDA_PDL=0/1을 사용하여 작동 여부를 테스트할 수 있습니다. llama.cpp를 이토록 멋지게 만들어 주는 모든 노고를 아끼지 않는 분들께 감사드립니다!