OpenCL中的处理器关联性

时间:2012-05-07 03:23:21

标签: multithreading opencl gpgpu

我们可以在OpenCl中强加procssor亲和力吗?例如,线程#1在处理器#5,
上执行 线程#2在处理器#6上执行,线程#3在处理器#7上执行,依此类推?

谢谢

1 个答案:

答案 0 :(得分:7)

据我所知,你不能用OpenCL指定那个低级别的亲和力。但是,从OpenCL 1.2开始,通过使用clCreateSubDevices分区到子设备(可能在每个子设备中使用CL_DEVICE_PARTITION_BY_COUNTS, 1一个处理器)并在每个子设备上运行单独的内核执行,可以控制关​​联性。

除了基于CPU的OpenCL实现之外,这很可能会运行得很差,我不得不质疑你为什么要做这样的事情。如果要限制OpenCL-CPU实现的CPU使用率,可以使用clCreateSubDevices分配一些计算资源。

描述来自英特尔的“设备裂变”的PDF是here,它有很多关于如何有效使用设备分区和clCreateSubDevices的信息。