我在AMD Radeon Vega 64上使用OpenCL。在任务管理器中,我看到GPU使用最大7%。如何最大限度地利用GPU?
NDRange global(100000);
queue.enqueueNDRangeKernel(kernel, NULL, global));
答案 0 :(得分:1)
主要是通过反复试验。根据您的内核,最简单的方法是简单地增加全局工作量。您还可以尝试使用CL_DEVICE_MAX_COMPUTE_UNITS
或CL_DEVICE_MAX_WORK_ITEM_SIZES
等可用信息以编程方式确定工作规模,但这并不完全可靠。
答案 1 :(得分:0)
您可以尝试手动将工作组大小设置为可提高性能的值。通常,默认值足够好,但有时您可能希望使用clGetKernelWorkGroupInfo来获取特定于内核的值,例如CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE。后者可以用作指示给定OpenCL内核的良好自定义工作组大小的指示。