【问题标题】:Using multiple programs in OpenCL在 OpenCL 中使用多个程序
【发布时间】:2021-04-02 20:07:19
【问题描述】:

我正在编写一段使用 OpenCL 来利用 GPU 的代码。我成功地制作了一个运行向量加法的内核(在一个名为VecAdd 的函数中),所以我知道它正在工作。假设我想为向量减法创建第二个内核VecSub。我该怎么做呢?或者更具体地说:我可以为VecAddVecSub 函数使用相同的上下文吗?

【问题讨论】:

    标签: opencl


    【解决方案1】:

    您好@debruss 欢迎来到 StackOverflow!

    是的,您当然可以在同一个Context 中运行多个Kernels
    您可以在同一个或多个Programs 中定义Kernels。您甚至可以在两个不同的Command Queues 或为out of order 执行配置的单个Command Queue 中同时运行它们。

    这里有一个在Program 中定义和运行两个Kernels 的示例(在rust 中:opencl2_kernel_test.rs

    【讨论】:

    • 你有这方面的文件吗?我让它工作了,但我很好奇你可以在文档中的哪里找到它。因为我找不到它。
    • @debruss 5.8. Program Objects 状态; “一个 OpenCL 程序由一组内核组成”。 API 对拥有多个程序对象不太清楚,但第 5.8 节暗示一个上下文可能有多个程序。但是,我完全同意你的观点,OpenCL 文档不是很清楚!
    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2015-07-24
    • 1970-01-01
    • 2020-09-26
    • 2020-01-24
    • 1970-01-01
    相关资源
    最近更新 更多