【发布时间】:2013-04-09 21:15:10
【问题描述】:
我正在尝试为 NVIDIA GeForce 9800 GT 显卡优化 OpenCL 矩阵乘法程序。我将两个 512x512 矩阵相乘,但我不确定我应该使用什么样的全局和本地工作组大小。谁能指出我正确的方向?
【问题讨论】:
-
理想情况下,全局大小应该尽可能高,只要您不需要中断计算来添加或修改输入,如果是这样,那么使用尽可能大的全局大小不会出现收益递减根据您的需要。尽管在实践中,如果您使用的是 GPU,它们中的大多数还不支持任务并发,因此运行您的内核的 GPU 只能做到这一点。因此,如果您将其用作主显卡,您的屏幕将冻结。至于本地工作大小,取决于内核和设备,你可以让OpenCL尝试优化它(查找clGetKernelWorkGroupInfo)
-
请记住,Nvidia GPU 将线程分组为 32 个线程的组(一个扭曲),因此对于合并的内存访问,您希望本地工作组大小的一维是 32 的倍数.
标签: opencl gpgpu matrix-multiplication