OpenCL如何控制使用的处理器数量

时间:2014-12-15 04:46:40

标签: opencl

我想控制GPU内核的数量来测试加速。我怎么能在OpenCL中做到这一点?我意识到我可以控制组大小来控制同步,但我很困惑,因为组大小可能超过百,这远远大于GPU核心的数量。

1 个答案:

答案 0 :(得分:3)

您正在寻找的是设备裂变。它是OpenCL 1.1的扩展,也是OpenCL 1.2以后的核心规范。

为了给你一个起点,你需要使用clCreateSubDevices。例如,要限制内核仅在一个计算单元上运行,您可以这样传递properties

{
    CL_DEVICE_PARTITION_BY_COUNTS, 
    1, // Use only one compute unit
    CL_DEVICE_PARTITION_BY_COUNTS_LIST_END
}

这告诉驱动程序创建一个由一个计算单元组成的子设备。然后,您可以在该子设备上运行内核,该子设备将仅在一个计算单元上进行调度。