Alyssa Rosenzweig 为驱动程序 OpenCL C 代码添加了一个标准库,包括在设备上支持 assert() 的初始能力,以及 OpenCL C 代码的其他标准 C 结构。
Alyssa Rosenzweig 在最近提交的 Mesa 25.0 合并请求中解释道:
“现在我们已经有了将驱动程序 CL C 代码预编译为 hw 二进制文件的通用代码,这就为在 CL 上实现驱动程序代码奠定了基础。不过,这种基础架构仍然非常简陋。本 MR 添加了大量通用代码,为驱动程序 CL C 提供了一个标准库,其中包括大量在宿主 C 中可用、但在应用程序 CL 中无法立即使用的标准 C 结构:
abort
static_assert
assert
assorted routines ported from util/macros.h, math.h, etc
printf、abort 和 assert 的组合有助于调试驱动程序 CL。如果正确集成(如这里为 Honeykrisp 所做的那样),它们都可以在驱动程序 CL 库中的任何位置工作 – 预编译着色器和注入应用程序着色器的库函数。”
这对于作为 Asahi Linux 项目一部分的 Apple Silicon 的 Honeykrisp 驱动程序工作以及其他 Mesa 开源驱动程序来说都是一个好消息。
如果您想了解该驱动程序 OpenCL C 代码标准库实现的更多细节,请参阅上周五合并到 Mesa 25.0-devel 中的合并请求:https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32529
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/zixun/54638.html