在 OpenCL 中使用多个程序
Using multiple programs in OpenCL
我正在编写一段代码,利用 GPU 使用 OpenCL。我成功地制作了一个运行向量加法的内核(在一个名为 VecAdd
的函数中),所以我知道它正在工作。假设我想为向量减法制作第二个内核 VecSub
。我该怎么办?或者更具体地说:我可以为 VecAdd
和 VecSub
函数使用相同的上下文吗?
嗨@debruss 欢迎来到 Whosebug!
是的,您当然可以 运行 多个 Kernels
在同一个 Context
。
您可以在相同或多个 Programs
中定义 Kernels
。您甚至可以在两个不同的 Command Queues
或为 out of order
执行配置的单个 Command Queue
中同时 运行 它们。
这里有一个例子(在rust
中)在Program
中定义和运行宁两个Kernels
:opencl2_kernel_test.rs.
我正在编写一段代码,利用 GPU 使用 OpenCL。我成功地制作了一个运行向量加法的内核(在一个名为 VecAdd
的函数中),所以我知道它正在工作。假设我想为向量减法制作第二个内核 VecSub
。我该怎么办?或者更具体地说:我可以为 VecAdd
和 VecSub
函数使用相同的上下文吗?
嗨@debruss 欢迎来到 Whosebug!
是的,您当然可以 运行 多个 Kernels
在同一个 Context
。
您可以在相同或多个 Programs
中定义 Kernels
。您甚至可以在两个不同的 Command Queues
或为 out of order
执行配置的单个 Command Queue
中同时 运行 它们。
这里有一个例子(在rust
中)在Program
中定义和运行宁两个Kernels
:opencl2_kernel_test.rs.