如何在cuda中优化exp函数? CUDA中的以下内容有何不同?
exp()
expf()
__expf()
答案 0 :(得分:15)
差异在CUDA C Programming Guide附录D中解释。
exp()
应该用于双精度,尽管应该为单个expf()
应该用于单精度(float
)__expf()
是快速数学版本,性能更快,但精度有所下降(取决于输入值,有关详细信息,请参阅guide)。答案 1 :(得分:4)
通常exp()
用于双精度,expf()
用于浮点数,两者都比__exp()
略慢,可用作硬件操作。性能提升通常以准确性为代价,但除非你真的关心准确性,否则它应该不是问题。