3

我们可以在 OpenCl 中施加处理器亲和力吗?例如线程#1 在处理器#5 上
执行,线程#2 在处理器#6 上执行,线程#3 在处理器#7 上执行,等等?

谢谢

4

1 回答 1

7

据我所知,您无法在 OpenCL 的低级别上指定亲和力。但是,从 OpenCL 1.2 开始,通过使用clCreateSubDevices(可能使用 clCreateSubDevices 在每个子设备中使用一个处理器)划分为子设备并在每个子设备CL_DEVICE_PARTITION_BY_COUNTS, 1上运行单独的内核执行,可以对亲和力进行一些控制。

除了基于 CPU 的 OpenCL 实现之外,这很可能在其他任何东西上都运行不佳,我不得不质疑您为什么要做这样的事情。如果您想限制 OpenCL-CPU 实现的 CPU 使用率,您可以使用clCreateSubDevices来分配一些计算资源。

来自英特尔的描述“设备裂变”的 PDF在这里,其中包含有关如何clCreateSubDevices有效使用设备分区的大量信息。

于 2012-05-07T04:02:30.150 回答