llama.cpp b10817发布:新增SYCL内存跟踪变量,按调用点统计设备内存分配
新版本引入GGML_SYCL_MEMTRACE环境变量,帮助开发者定位内存问题,并改进 --fit算法。
AI解读:llama.cpp新版本b10817为SYCL后端新增了内存跟踪功能,通过两个环境变量GGML_SYCL_MEMTRACE=1 和 =2,开发者可以按代码调用点查看设备内存占用,或在每次分配和释放时输出日志。这对调试大模型推理时的显存不足问题很有用,项目方表示该功能在改进 --fit算法时发挥了关键作用。普通用户若想开启此功能,需要先设置日志级别 -lv 4。对开发者来说,这意味着定位显存泄漏或占用过高时,不必再靠猜测,可以直接看到是哪个函数申请了内存;对普通用户,除非遇到显存异常,否则无需关心此更新。
llama.cpp发布b10817版本,为SYCL后端新增内存跟踪功能:通过环境变量GGML_SYCL_MEMTRACE按调用点(site)统计设备内存分配,帮助调试内存问题。项目方称该功能在改进 --fit算法时发挥了重要作用,并可能对其他内存相关问题的排查有用。
新增环境变量与使用条件
要启用以下功能,需要设置日志级别 -lv 4。GGML_SYCL_MEMTRACE=1 时,显示每个调用点的内存使用情况,并在内存增长超过 64MiB时更新;GGML_SYCL_MEMTRACE=2 时,显示每次内存分配和释放。默认的 64MiB报告阈值可通过GGML_SYCL_MEMTRACE_STEP环境变量修改。
- 示例日志行:[SYCL-MEMTRACE] device memory query (dev): total 59493 MiB, free 4494, in use 54998; allocated 0 (buffers 0 + scratch 0), peak 0 MiB