CUDA数学API:函数和内在函数之间的区别

Posted

技术标签:

【中文标题】CUDA数学API:函数和内在函数之间的区别【英文标题】:CUDA math API: difference between functions and intrinsics 【发布时间】:2014-06-06 15:44:45 【问题描述】:

根据CUDA math APi,许多数学函数,如正弦和余弦,都是在软件(函数)和硬件(内在函数)中实现的。这些内在函数可能使用了 GPU 的特殊功能单元,那么软件实现的意义何在?这不比硬件实现慢吗?

【问题讨论】:

【参考方案1】:

要问的更好的问题是“内在函数的意义是什么?”。

答案就在编程指南的Appendix D。超越函数、三角函数和特殊函数的内在函数更快,但与软件对应的函数相比,具有更多的域限制和较低的精度。对于硬件(即图形)的主要目的,具有正弦、余弦、平方根、倒数等的快速近似函数可以在最终数学精度不重要时提高着色器性能。对于某些计算任务,不太准确的版本也可以。对于其他应用程序,内在函数可能还不够。

两者兼备允许知情的程序员做出选择:速度或准确性。

【讨论】:

以上是关于CUDA数学API:函数和内在函数之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

全局函数和设备函数之间的区别

Cuda 中的运行时 VS 驱动程序 API

用 sse 执行内在函数

线性编程优化和梯度下降优化之间有什么区别?

(转)c运行库c标准库windows API的区别和联系

为 C 数学函数调用 MSVC 内置/内在函数