gpt4 book ai didi

opencl - 内核和程序对象有什么区别?

转载 作者:行者123 更新时间:2023-12-05 00:17:54 27 4
gpt4 key购买 nike

我浏览过几个资源:OpenCL Khronos 书、GATech 教程、NYU 教程,我还可以浏览更多。但是我还是没有完全理解。 内核和程序对象有什么区别?

到目前为止,对我来说最好的解释是这样的,但这还不足以让我完全理解:
程序对象:程序对象封装了一些源代码(可能带有几个内核函数)及其最后一次成功构建。
KERNEL:内核对象封装了内核的值
内核执行时使用的参数。

也许程序对象就是代码?内核是编译后的可执行文件吗?是这样吗?因为我能理解这样的事情。

提前致谢!

最佳答案

程序是一个或多个内核加上可选的支持功能的集合。可以从源代码或多种类型的二进制文件(例如 SPIR、SPIR-V、 native )创建程序。在从中选择内核之前,需要为一个或多个设备(使用 clBuildProgram 或 clCompileProgram 和 clLinkProgram)构建一些程序对象(从源代码或中间二进制文件创建)。考虑程序的最简单方法是,它们就像 DLL 和导出内核以供程序员使用。

内核是一个可执行实体(不一定要编译,因为您可以拥有代表硬件的内置内核(例如英特尔硬件上的视频运动估计内核)),您可以绑定(bind)它的参数并将它们提交到各种队列以供执行。

关于opencl - 内核和程序对象有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com