llama.cpp b12002为ggml加入批量张量拷贝API
该版本在ggml中新增通用批量张量拷贝API,llama的context I/O与设备I/O改用该批量路径,并加入CUDA支持;同时移除异步tensor_n API、新增空缓冲区钩子(该钩子尚未实现,标记为TODO)。
AI解读:该批量API已加入CUDA后端支持;ggml移除了异步tensor_n API,改为增加空缓冲区钩子(该钩子尚未实现,标记为TODO),并修正批量张量的 2D检测、按缓冲区类型分组操作。
测试方面,test-backend-tensor被重构为在每个后端缓冲区类型及一个临时mock缓冲区类型上运行统一测试集;mock测试覆盖分派逻辑、逐张量回退、cpy_tensor_n的全有或全无行为以及缓冲区类型分组。
发布页附有macOS/iOS、Linux(含Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL、Snapdragon)、Android、Windows及UI的多平台二进制下载链接;openEuler构建标注为DISABLED。
llama.cpp发布b12002构建,主要变更是为ggml加入通用批量张量拷贝API(PR #30881),并让llama在context I/O与设备I/O的张量拷贝中使用该批量接口。
批量拷贝API的改动范围
根据发布说明,该PR先在ggml中加入通用批量张量拷贝API,随后在llama的context I/O中改用该API,并让设备I/O张量拷贝走批量路径。ggml侧同时加入CUDA支持。
发布说明还列出若干配套调整:移除异步tensor_n API、增加空缓冲区钩子(该钩子尚未实现,标记为TODO)、修正批量张量的 2D检测、按缓冲区类型对批量张量操作分组,以及若干缩进和const正确性修改。
- 新增:ggml通用批量张量拷贝API(PR #30881)
- 接入:llama context I/O与设备I/O张量拷贝使用批量路径
- 后端:ggml为批量张量API加入CUDA支持
- 移除:异步tensor_n API;新增空缓冲区钩子(尚未实现,标记为TODO)
- 修正:批量张量 2D检测;按缓冲区类型分组批量操作
测试调整与下载产物
测试方面,test-backend-tensor被重构为在每个后端缓冲区类型和一个临时mock缓冲区类型上运行统一测试集。发布说明称,mock测试覆盖ggml_backend_tensor_{set,get,copy}_n的分派逻辑、逐张量回退、cpy_tensor_n的全有或全无行为,以及缓冲区类型分组。
发布页提供多平台二进制下载,包括macOS Apple Silicon与Intel、iOS XCFramework、Ubuntu(CPU、Vulkan、CUDA 12.8/13.4、ROCm 10.0、OpenVINO、SYCL)、Linux arm64 Snapdragon、Android arm64、Windows(CPU、CUDA、Vulkan、OpenVINO、SYCL、ROCm)以及UI包。openEuler相关构建标注为DISABLED。发布说明中的Assisted-by记录显示,部分提交使用了pi与dsh工具,模型标注为DeepSeek-V4-Flash-Vision-Exp-GGUF,运行环境为Mac Studio(M2 Ultra,192GB)。
- 测试重构:test-backend-tensor在每个后端缓冲区类型和mock缓冲区类型上运行统一测试集
- mock覆盖:钩子调用、逐张量回退、cpy_tensor_n全有或全无、缓冲区类型分组
- 下载产物:macOS、iOS、Ubuntu、Linux arm64 Snapdragon、Android、Windows、UI
- openEuler构建:DISABLED