如何在CUDA中优化exp函数?
以下在CUDA中有什么区别?
exp()
expf()
__expf()
如何在CUDA中优化exp函数?
以下在CUDA中有什么区别?
exp()
expf()
__expf()
区别在CUDA C编程指南的附录D中有解释。
exp()
用于双精度,但应重载为单精度使用。expf()
用于单精度(float
)。__expf()
是快速数学版本,性能更快但精度损失较大(取决于输入值,请参阅指南获取更多详细信息)。2 + floor(abs(1.16 * x))
。你可能想把这个加到你的答案里 ;) - Ander Biguri通常情况下,exp()
用于双精度浮点数,expf()
用于单精度浮点数,而两者都比可用作硬件操作的__exp()
稍微慢一些。性能提升往往以精度为代价,但除非您真的关心精度,否则这不应该是一个问题。