我需要限制opencl应用程序使用的计算单元数。 我在具有8个计算单元的CPU上运行它,我已经看到了CL_DEVICE_MAX_COMPUTE_UNITS。
我使用OpenCL获得的执行时间远远少于没有OpenCL的正常算法的8倍(比600倍快)。我想只使用1个计算单元,因为我需要看到使用OpenCL优化的相同代码的真正改进。
仅用于测试,真正的应用程序将继续使用所有计算单元。
感谢您的帮助
答案 0 :(得分:5)
如果您使用的是CPU,为什么不尝试使用OpenCL设备裂变扩展?
Device Fission允许您将计算机单元拆分为子设备。然后,您可以创建一个命令队列到子设备,并将内核仅排入CPU核心的子集,
例如,您可以将8核设备划分为8个1核的子设备。
查看AMD APP SDK中的Device Fission示例。