llama.cpp 项目发布了构建版本 b11351,为 ggml 后端缓冲区类型接口引入了新方法。此次更新添加了 `alloc_buffer_n` 和 `get_alloc_size_n`,以实现对缓冲区分配和大小查询的更精细控制。

  • 向 `ggml_backend_buffer_type_i` 添加了 `ggml_backend_buft_alloc_buffer_n` 公共 API 及相应的回调函数。
  • 通过 `ggml_tallocr` 实现了多缓冲区拆分和张量分配的默认处理逻辑。
  • 添加了可选的 `get_alloc_size_n` 回调函数,用于共享张量到缓冲区的规划逻辑。
  • 在默认实现中,将未检查的 realloc 替换为 std::vector。
  • 移除了临时的 `ggml_backend_meta_alloc_ctx_tensors_from_buft` 函数。

此版本提供了适用于 macOS、Linux、Windows、Android 和 openEuler 的二进制文件,支持 CPU、GPU(CUDA、Vulkan、ROCm、OpenCL)、NPU(Hexagon)及其他加速器。