CUDA中是否有任何设备功能可以获得IEEE 754特殊值,如inf,NaN?我的意思是稳定的方式,而不是一些可以由编译器优化的数学运算。
我只设法找到一个名为nan()的设备函数,它必须带一些未知的字符串参数。
答案 0 :(得分:18)
CUDART_NAN
中定义的CUDART_NAN_F
(double)和/usr/local/cuda/include/math_constants.h
(float)怎么样:
#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)
答案 1 :(得分:1)
CUDA现在在数学库中有nanf指令。
设备浮动nanf(const char * tagp)
Returns "NaN"