【发布时间】:2012-03-15 03:04:54
【问题描述】:
这个问题是关于 OpenCL 中可用的 mad 函数,它们承诺显着改进类型的计算:
a * b + c
如果用作 mad(a,b,c) 并使用 cl-mad-enable 编译。
我已经尝试使用 mad 计算 a + b * c + d * e 形式的非常大的尺寸,并期待显着改进。令人惊讶的是,它花了同样的时间。
如果有人有这方面的经验,我将不胜感激。我有一个想法,它应该可以工作,因为大部分资源都对mad() 赞不绝口。注意:我使用的数据类型都是双精度的,如果它很重要,我对mad 的使用导致了巨大的精度损失。
【问题讨论】:
-
你的 GPU 真的支持双打吗?其中很多只支持浮动。
-
默认情况下不是,但通过启用 cl_khr_fp64,我可以使用它们。您可能有一点,我将转换为浮动并检查。由于代码很大,所以需要一些时间。有东西我会回复的。
标签: optimization gpu opencl fma