【发布时间】:2013-03-09 00:01:06
【问题描述】:
CUDA 中是否有任何设备函数可以获取 IEEE 754 特殊值,例如 inf、NaN?我的意思是稳定的方式,而不是一些可以被编译器优化的数学运算。
我只找到了一个名为 nan() 的设备函数,它必须接受一些未知的字符串参数。
【问题讨论】:
标签: cuda floating-point nvidia nan
CUDA 中是否有任何设备函数可以获取 IEEE 754 特殊值,例如 inf、NaN?我的意思是稳定的方式,而不是一些可以被编译器优化的数学运算。
我只找到了一个名为 nan() 的设备函数,它必须接受一些未知的字符串参数。
【问题讨论】:
标签: cuda floating-point nvidia nan
CUDART_NAN (double) 和 CUDART_NAN_F (float) 在 /usr/local/cuda/include/math_constants.h 中定义如何:
#define CUDART_NAN_F __int_as_float(0x7fffffff)
#define CUDART_NAN __longlong_as_double(0xfff8000000000000ULL)
和:
#define CUDART_INF_F __int_as_float(0x7f800000)
#define CUDART_INF __longlong_as_double(0x7ff0000000000000ULL)
【讨论】:
CUDA 现在在数学库中有 nanf 指令。
设备 float nanf( const char *tagp )
Returns "NaN"
【讨论】: