CUDA Math API 参考手册
CUDA 数学函数始终在设备代码中可用。
通用数学函数的主机实现在平台特定的方式中映射到标准数学库函数,由主机编译器和相应的主机 libm 提供(如果可用)。某些主机编译器不可用的函数在 crt/math_functions.hpp 头文件中实现。例如,请参阅 erfinv()。其他不太常见的函数,例如 rhypot(), cyl_bessel_i0() 仅在设备代码中可用。
对于格式良好的 CUDA 程序,CUDA Math 设备函数不会抛出异常。
请注意,许多浮点和整数函数名称针对不同的参数类型进行了重载。例如,log() 函数具有以下原型
double log(double x);
float log(float x);
float logf(float x);
另请注意,由于实现约束,即使通过显式限定的 std:: 名称,也可以在设备代码中调用来自 std:: 命名空间的某些数学函数。但是,不鼓励这种使用,因为此功能不受支持、未经验证、未记录、不可移植,并且可能会在没有通知的情况下更改。