【发布时间】:2014-08-20 17:51:20
【问题描述】:
假设我的 GPU 中总共有 8 个内核。我想要的是我在 4 个内核中的每一个上并行运行两个内核(或者如果不可能,那么至少同时运行)。可能吗?如果是,我们如何在 OpenCL 中做到这一点?
【问题讨论】:
标签: opencl
假设我的 GPU 中总共有 8 个内核。我想要的是我在 4 个内核中的每一个上并行运行两个内核(或者如果不可能,那么至少同时运行)。可能吗?如果是,我们如何在 OpenCL 中做到这一点?
【问题讨论】:
标签: opencl
一次运行多个 OpenCL 内核的能力由硬件决定。最新的 AMD 和 Nvidia 显卡可以做到这一点。至少您需要这样的设备和多个命令队列,您可以在其中将内核执行排入队列。看这个:How do I know if the kernels are executing concurrently?
GPU 的划分称为 Device Fission。它在 OpenCL 1.1 中作为扩展支持,在 OpenCL 1.2 中开箱即用。 AFAIK,主要供应商不支持GPU,但是,CPU可以很容易地分割成子设备。对应的 API 调用是 clCreateSubDevices。关于这个主题的好文章:英特尔的OpenCL* Device Fission for CPU Performance。
【讨论】: