CUDA 快速数学
CUDA 内置目标弃用通知
Numba 内置的 CUDA 目标已弃用,后续开发已移至 NVIDIA numba-cuda 包。请参阅 内置 CUDA 目标弃用和维护状态。
如 快速数学 中所述,对于某些使用浮点数的应用程序,不要求严格符合 IEEE-754 标准。对于这部分应用程序,可能会实现性能加速。
CUDA 目标实现了 快速数学 行为,但有两点不同。
首先,传递给
@jit 装饰器
的fastmath
参数仅限于值True
和False
。当为True
时,将启用以下优化:将非规范数刷新为零。
使用平方根函数的快速近似。
使用除法运算的快速近似。
将乘法和加法运算合并为单一的融合乘加运算。
有关这些优化的更多详细信息,请参阅 nvvmCompileProgram 的文档。
其次,对
float32
操作数调用的部分数学模块函数将使用来自 libdevice 库的快速近似实现。math.cos()
: 使用 __nv_fast_cosf 实现。math.sin()
: 使用 __nv_fast_sinf 实现。math.tan()
: 使用 __nv_fast_tanf 实现。math.exp()
: 使用 __nv_fast_expf 实现。math.log2()
: 使用 __nv_fast_log2f 实现。math.log10()
: 使用 __nv_fast_log10f 实现。math.log()
: 使用 __nv_fast_logf 实现。math.pow()
: 使用 __nv_fast_powf 实现。