CUDA 数学 API 参考手册
CUDA数学函数在设备代码中始终可用。
常见数学函数的主机实现会以平台特定的方式映射到标准数学库函数,这些函数由主机编译器及相应的主机libm库(在可用时)提供。部分主机编译器不支持的函数则在crt/math_functions.hpp头文件中实现。例如,参见erfinv()。其他较不常见的函数,如rhypot()、cyl_bessel_i0()仅在设备代码中可用。
CUDA数学设备函数对于格式正确的CUDA程序不会抛出异常。
请注意,许多浮点数和整数函数名称针对不同的参数类型进行了重载。例如,log()函数具有以下原型:
double log(double x);
float log(float x);
float logf(float x);
还需注意的是,由于实现限制,某些来自std::命名空间的数学函数可能通过显式限定的std::命名在设备代码中调用。但强烈不建议这种用法,因为该功能不受支持、未经验证、无文档说明、不具备可移植性,且可能未经通知就发生变更。