llama.cpp b12048优化Intel Arc Pro B70的SYCL通信交换,提示词评估速度提升 19%
该版本在Intel Arc Pro B70上重写ggml_sycl_comm_exchange():据提交说明,-sm张量提示词评估速度提升 19%,且PPL无变化;Windows平台暂被排除。
llama.cpp发布b12048版本,本次改动集中在SYCL后端:为Intel Arc Pro B70加速ggml_sycl_comm_exchange()(PR #30956)。
提交说明给出的性能数字与适用范围
提交说明称,该改动使 -sm张量场景的提示词评估速度(t/s)提升 19%,PPL无变化。这一数字来自提交者自述,发布说明未附独立复测或第三方评测。适用范围为Intel Arc Pro B70上的SYCL后端。
- 速度提升:-sm张量提示词评估 +19%(提交者自述)
- 质量影响:PPL无变化(提交者自述)
- 硬件范围:Intel Arc Pro B70
实现方式的两处调整
提交说明列出两项具体改动。其一,把第一对wait() 调用替换为ext_oneapi_submit_barrier(),说明称原wait() 调用被发现有MTP性能下降问题。其二,在初始化阶段加入comm_exchange函数指针,在 2 缓冲区与 4 缓冲区两个版本之间切换,该切换由SYCL_ENABLE_DEFAULT_CONTEXTS=1 设置控制,不再放在热路径中判断。
此外,提交还包含补回 4 缓冲区释放的后半段以及移除多余空白等修改。
- 以ext_oneapi_submit_barrier() 替换首对wait(),原因是wait() 导致MTP性能下降
- 2/4 缓冲区版本在初始化时选定,由SYCL_ENABLE_DEFAULT_CONTEXTS=1 控制
- 补回 4 缓冲区free的后半段
平台限制与发布产物
提交说明明确本次改动排除Windows,需待Windows上验证后再纳入。b12048的发布产物仍覆盖macOS、Linux(含CUDA 12/13、ROCm 10.0、Vulkan、OpenVINO、SYCL FP32/FP16等)、Android、Windows及UI等多个构建;其中SYCL相关构建为Ubuntu x64(FP32/FP16)与Windows x64(SYCL)。
- Windows暂不包含本次SYCL改动
- 发布产物含Ubuntu x64 SYCL FP32/FP16与Windows x64 SYCL构建
- macOS KleidiAI版与openEuler构建在发布页标注为DISABLED