【发布时间】:2016-12-31 21:04:08
【问题描述】:
我浏览过多种资源:OpenCL Khronos 书籍、GATech 教程、NYU 教程,我还可以浏览更多。但是我还是没有完全理解。 内核和程序对象有什么区别?
到目前为止,对我来说最好的解释是这样的,但这还不足以让我完全理解: 程序对象:程序对象封装了一些源代码(可能带有几个内核函数)及其最后一次成功构建。 KERNEL:内核对象封装了内核的值 内核执行时使用的参数。
也许程序对象就是代码?内核是编译后的可执行文件吗?是这样吗?因为我能理解这样的事情。
提前致谢!
【问题讨论】:
-
这个解释对我来说也没有意义:内核是在 OpenCL 设备上运行的 OpenCL 函数;程序对象是实现内核的程序源代码和可执行文件。我的脱节是函数和源代码对我来说意味着同样的事情。
-
我不知道为什么这对你很重要——你似乎对术语很着迷。实际方面很重要,这很清楚——内核是一个可以执行的编译函数;该程序是编译后的代码,可能包含多个内核。所以它是不同抽象级别的对象,与任何编程语言中的程序和函数/例程完全相同。
-
知道了!这是完全有道理的。谢谢!