在CUDA中获取浮点特殊值的方法?

时间:2013-03-20 02:37:38

标签: cuda floating-point nvidia nan

CUDA中是否有任何设备功能可以获得IEEE 754特殊值,如inf,NaN?我的意思是稳定的方式,而不是一些可以由编译器优化的数学运算。

我只设法找到一个名为nan()的设备函数,它必须带一些未知的字符串参数。

2 个答案:

答案 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"