多内核实现中的 OpenCL 计算单元数



我正在多内核 OpenCL 实现中工作,我不确定不同的内核如何映射到计算单元。

我所有的内核都并发执行,我认为只有执行相同内核的工作组被分配给单个计算单元。因此,我推断我使用的每个不同内核至少有一个计算单元。我说的对吗?

我知道我可以使用 clGetDeviceInfo 并在现场CL_DEVICE_MAX_COMPUTE_UNITS中查找,但它没有告诉我内核是如何分布的或我正在使用多少个计算单元。

与这个问题相关,如果我不指定">属性(num_compute_units(X((("将使用多少个计算单元,则使用多少个?

谢谢

对于大多数 OpenCL 工作,您可以安全地忽略计算单元的数量。此外,如果您打算在不同类型的硬件上运行,则确实应该忽略它。对于使用共享本地内存的内核,您需要担心最大工作组大小,但这是另一回事。在这种情况下,您可以在计划支持的硬件中编写最少的代码,或者编写可以处理任何工作组大小的灵活内核。

最新更新