#1554·ggml

libggml 0.13.1 在 i915 (Intel comet lake) 上的 freebsd-16 系统中在 MUL_MAT_ID() 中发生故障

作者: erikarn创建于 2026年7月6日更新于 2026年7月15日

这次测试在freebsd-16上的i915(英特尔彗星湖)上失败:

adrian@test-3:~/work/freebsd/head/freebsd-ports/misc/ggml/work/.built%./bin/test-backend-ops-o'MUL MAT ID(类型 a=mxfp4,类型 b=f32,n mats=32,n 已使用=2,b=0,m=2880,n=32,k=2880)'.
ggml vulkan: 找到 1个 Vulkan 设备 :
ggml vulkan: 0 = Intel(R) UHD Graphics 630 (CML GT2) (英特尔开源Mesa驱动程序) | ma: 1 | fp16: 1 | bf16: 0 | 曲速大小:32 | 共享内存:49152 | int点:0 | 矩阵核心:无
测试 2个设备

后端 1/2: Vulkan0
设备描述: Intel( R) UHD 图形 630 (CML GT2)
设备内存: 48963 MB (29491 MB 免费)

[MUL MAT ID] 误差=820.832519335 > 0.000500000 sentinel match: send 0 sentinel match: send 1 sentinel match: send 2 sentinel match: send 3 MUL MAT ID(type a=mxfp4,type b=f32,n mats=32,n used=2,b=0,m=2880,n=32,k=2880): FAIL(英语:

i915司机撞上栅栏超时:

栅栏到期时间出i915-drmn0:测试-后端-ops[100911]:6e!.
栅栏到期时间出i915-drmn0:test-backend-ops[100911]:70!

在通过一些在线搜索和AI工具浏览之后,我登陆了“也许这是一个正在编译的堕落案例,以至于GPU遮蔽器无法完成太多的工作,因为Intel GPU缺少了这里所需要的数据类型。”

但我不确定这是否是正确的解决办法:

adrian@test-3:~/work/freebsd/head/freebsd-ports/misc/ggml/work/.build%猫./././files/pach-src-ggml-vulkan.cpp 互联网档案馆的存檔,存档日期2013-12-21.
--- src/ggml-vulkan/ggml-vulkan.cpp.orig 2026-07-05 16:26:17.100975000-0700 (英语).
· src/ggml-vulkan/ggml-vulkan.cpp 2026-07-05 16:29:00. 239048000-0700 (英语).
-16321,7+16321,15 @@
/ 请检查url=值 (帮助). 如果没有足够的共享内存用于行 ids和结果的平板,则返回CPU
假返回;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
+}
+ 键
+ // 英特尔 GPU 遇到严重遮荫环 / 10s 环缓冲栅栏超时
+ // 在巨大的稀有的专家混合矩阵阵列上. 回落到主机CPU.
+ 如果(device->vendor id == VK Vendor ID INTEL) {(中文(简体) ).
+ 如果( op- > src [0]- > ne [2] > 16)
+ 假返回;
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
+ 键
开关( src0 type) {
案件 GGML TYPE F32 :
实例 GGML TYPE F16:

我见过其他的门票(例如https://GitHub.com/ggml-org/LLaMA.cpp/issues/19327),所以我觉得这里有些怪事. 有人能更了解 矩阵操作和硬件支持吗? 谢谢!