我正在尝试在CPU(Intel i7-7550u)上运行的OpenCL程序中设置计算单元的数量。
我只是问是否有与OpenMP的set_num_threads类似的功能。
答案 0 :(得分:0)
clCreateSubDevices将创建具有选定数量内核的子设备,但我认为实际上没有很多设备支持创建子设备,如果我错了,请有人纠正我。
但是限制计算单元数量与在OpenMP中设置线程数量并不完全相同。限制全局工作项的数量等于限制线程的数量,而限制计算单元的数量将限制您将要运行的并发线程数。
答案 1 :(得分:0)
在OpenCL中没有直接等效于OpenMP的set numthreads函数。 您可以做的最接近的事情是在内核分派期间配置线程总数,请参阅[1]
执行的并发线程总数是本地工作组大小,而将执行的线程总数是全局工作大小。
[1] https://www.khronos.org/registry/OpenCL/sdk/1.2/docs/man/xhtml/clEnqueueNDRangeKernel.html