llama.cpp 项目发布了构建版本 b10622,其中包含针对 Metal 后端的紧急修复,以防止因内存不足导致的崩溃。此次更新解决了一个问题:由于分配失败导致 `ggml_metal_buffer_init` 返回 NULL 时未被检查,从而在解引用空指针时通过 `EXC_BAD_ACCESS` 导致硬崩溃。
- metal: 在 `ggml_backend_metal_buffer_type_alloc_buffer` 中为 `ggml_metal_buffer_init` 的结果添加了空值检查,以优雅地处理 OOM 情况。
- cont: 修复了代码库中的日志记录问题。
此更改确保像 iOS 这样的内存受限设备在模型或上下文超出可用 Metal 预算时,能够显示可诊断的错误而不是崩溃。