【发布时间】:2012-04-03 21:59:54
【问题描述】:
我已经开始学习 openCL 编程。作为开始,我正在考虑为以下 3 次多项式编写优化代码:
g(x)= b1(x).f(x)+b2(x).(f(x))^2+b3(x).(f(x)))^3
上面的等式可以简化为:
g(x) = f(x)[b1(x)+f(x)[b2(x)+f(x).b3(x)]]
这在很大程度上减少了乘法的次数。
假设我的 f、b1、b2 和 b3 是大小为 500x500 的矩阵。以下是我认为实现此算法的选项:
- 实现一个具有 500x500 个线程的内核,每个线程在一个 矩阵的元素。
- 实现一个具有 500 个线程的内核,每个线程操作 500 个元素,即每个线程操作一行。
此外,数组 b1,b2,b3 是常量数组。我读到常量数组可以移动到设备上,并将其保存在本地设备内存中。如果还有其他可能的优化,请分享。
提前致谢
sravan
【问题讨论】:
标签: optimization opencl mathematical-optimization