Way to get floating-point special values in CUDA?
CUDA中是否有任何设备功能可以获得IEEE 754特殊值,如inf,NaN? 我的意思是稳定的方式,而不是一些可以由编译器优化的数学运算。
我只设法找到一个名为nan()的设备函数,它必须采用一些未知的字符串参数。
如何在
1 2 | #define CUDART_NAN_F __int_as_float(0x7fffffff) #define CUDART_NAN __longlong_as_double(0xfff8000000000000ULL) |
和:
1 2 | #define CUDART_INF_F __int_as_float(0x7f800000) #define CUDART_INF __longlong_as_double(0x7ff0000000000000ULL) |
CUDA现在在数学库中有nanf指令。
device float nanf(const char * tagp)
1 | Returns"NaN" |