我正在使用OpenCL,我使用一个矩阵来增加它的值,我需要尽可能低的应用时间。使用OpenCL提高性能的最佳方法是什么?我读过一些关于数据并行性和任务并行性的文章,但我并不十分了解它们。
我在用64x56矩阵。使用任务并行性,我创建了64个内核函数。每个专栏都有一个内核,但我认为我可以做得更好。
发布于 2017-06-25 01:04:06
如果要在GPU上执行内核,最好让一个线程处理一个项。然而,这取决于您对矩阵元素所做的具体操作,例如,您对每个元素执行了多少次操作。如果你只是增加一些元素的一些数字,这可能是没有好处的。
一般而言,有三种选择:
您是否尝试过只使用一个内核来处理一个元素,并在全局工作大小等于{64,56}的情况下调用clEnqueueNDRangeKernel?它如何影响执行时间?
https://stackoverflow.com/questions/44651848
复制相似问题