【问题标题】:Multiple Programs (vs. Kernels) in an OpenCL applicationOpenCL 应用程序中的多个程序(相对于内核)
【发布时间】:2015-06-06 18:30:18
【问题描述】:

一个程序可以包含多个内核。如果我在多个程序中破坏我的内核会有什么不同吗?它们都可以使用相同的上下文并在相同的设备和队列上运行吗?

我在玩 OpenCL,碰巧在 PyOpenCL 中工作。该结构使得命令队列由一个类拥有,该类将几个内核编译成一个程序。我正在实现一些子类,这些子类实现了一些我将在基类队列上运行的内核。我是否需要将这些内核重新注入基类并将其编译成一个程序,或者我可以为每个子类编译单独的程序,这些程序都依赖于基类中的上下文?

【问题讨论】:

    标签: opencl


    【解决方案1】:

    一个 OpenCL 上下文可以有多个与之关联的程序,因此您可以将内核拆分到多个程序中,一切仍然有效。

    【讨论】:

    • 谢谢,您回答了这个问题。但我没有问的是:这个程序有什么意义,它只是一种在一个源文件中将多个内核发送到编译器的便捷方式吗?
    • 是的,它本质上类似于源文件。
    • 后续问题 - 有人知道“每个程序一个内核”策略是好是坏吗?
    • 编译器将所有内容编译成一个二进制文件,非常有效:结果相同。
    猜你喜欢
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    相关资源
    最近更新 更多