开源llama.cpp Releases·原文 2026年11月10日

llama.cpp b12228为ggml的TRI算子补上反向传播

该版本在ggml的反向传播switch中加入GGML_OP_TRI的处理分支,此前含该算子的可训练计算图会以“unsupported ggml op for backward pass: TRI”中止;发布页同时列出各平台预编译包,macOS KleidiAI版与openEuler构建仍为禁用状态。

AI解读:提交说明给出的依据是TRI为线性算子,其梯度按同样方式做掩码;由于传入梯度不一定连续(转置的反向会交出视图),而ggml_tri要求连续,代码先将其转为连续。

同一提交先为test_tri增加了post_transpose变体(out = transpose(tri(a))),该用例在缺少此改动时会按上述方式中止;随后作者简化了反向实现,直接把梯度传给ggml_tri并删除该转置测试。提交说明称现有TRI用例已覆盖连续F32梯度的反向传播。

发布页按平台列出预编译包,覆盖macOS(arm64、Intel)、iOS XCFramework、Linux(含CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL、s390x、Snapdragon)、Android、Windows与UI包。macOS Apple Silicon的KleidiAI启用版标注为DISABLED,openEuler各项构建同样标注为禁用。

llama.cpp发布b12228版本,主要代码变更是为ggml的TRI算子实现反向传播(PR #30712)。提交说明提到,GGML_OP_TRI此前在反向switch中没有分支,含该算子的可训练计算图会以“unsupported ggml op for backward pass: TRI”中止。

TRI反向传播的实现与调整

提交说明称,TRI是线性算子,梯度按同样方式做掩码。传入的梯度不一定连续,原因是转置的反向会交出视图,而ggml_tri要求连续,因此代码先把它转为连续。

该提交先给test_tri增加了post_transpose变体(out = transpose(tri(a))),在没有上述改动时该用例会按前述方式中止。随后作者简化实现,把梯度直接传给ggml_tri并删除转置测试,提交说明称现有TRI用例已覆盖连续F32梯度的反向传播。

b12228提供的构建包

发布页按平台列出预编译产物:macOS arm64与Intel、iOS XCFramework;Linux下含CPU、Vulkan、CUDA 12.8/13.5、ROCm 10.0、OpenVINO、SYCL FP32/FP16、s390x(含zDNN)以及Snapdragon的CPU/Adreno GPU/Hexagon NPU版本;另有Android arm64、Windows各后端包与UI包。

  • macOS Apple Silicon的KleidiAI启用版标注为DISABLED,并链接至PR #23780。
  • openEuler的x86与aarch64构建(310p、910b ACL Graph)同样标注为禁用,链接至PR #23705。

信息来源

llama.cpp Releases原始来源

更多

新闻专题
外观