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