如何提高CUDA下浮点运算精度(或者如何使用双精度)

当前我的算法,主要是因为不断迭代的原因导致误差不断的扩大。
Y = XX+ZZ
因为X,Y都已经是很小的数字,通过上千层的不断迭代,误差已经扩大到不能接受。
据说CUDA下能够使用双精度,具体使用方式是这样的?

看你的硬件支持双精度不?

另外我记得有个什么算法可以提高精度的,你可以google一下

呵呵,有一个算法可以提高FLOAT型的精度。去找一下嘛。

给个关键词,谢谢呃

具体名字记不清了,你自己google一下就是了

使用double类型变量,编译选项选择sm_13以上架构

1、计算能力1.3以上才支持双精度;
2、可以用kahan’s Summation Formula来提供单精度运算的精确度。