15.19. __nv_fp8_e5m2
-
struct __nv_fp8_e5m2
-
__nv_fp8_e5m2 数据类型
此结构体实现了用于处理
fp8浮点数的数据类型,该浮点数为e5m2类型:具有 1 位符号位、5 位指数位、1 位隐含尾数位和 2 位显式尾数位。此结构体实现了转换构造函数和运算符。
公共函数
-
__nv_fp8_e5m2() = default
-
默认构造函数。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const __half f)
-
从
__half数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const __nv_bfloat16 f)
-
从
__nv_bfloat16数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const double f)
-
从
double数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const float f)
-
从
float数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const int val)
-
从
int数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const long int val)
-
从
longint数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const long long int val)
-
从
longlongint数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const short int val)
-
从
shortint数据类型构造。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned int val)
-
从
unsignedint数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned long int val)
-
从
unsignedlongint数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned long long int val)
-
从
unsignedlonglongint数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned short int val)
-
从
unsignedshortint数据类型构造,对于超出范围的值,依赖于__NV_SATFINITE行为。
-
__host__ __device__ inline explicit operator __nv_bfloat16() const
-
转换为
__nv_bfloat16数据类型的运算符。
-
__host__ __device__ inline explicit operator bool() const
-
转换为
bool数据类型的运算符。+0 和 -0 输入转换为
false。非零输入转换为true。
-
__host__ __device__ inline explicit operator char() const
-
转换为实现定义的
char数据类型的运算符。检测
char类型的有符号性并相应地进行处理,更多详细信息请参见有符号和无符号 char 运算符。将输入值钳制到输出范围。
NaN输入转换为零。
-
__host__ __device__ inline explicit operator double() const
-
转换为
double数据类型的运算符。
-
__host__ __device__ inline explicit operator float() const
-
转换为
float数据类型的运算符。
-
__host__ __device__ inline explicit operator int() const
-
转换为
int数据类型的运算符。将过大的输入值钳制到输出范围。
NaN输入转换为零。
-
__host__ __device__ inline explicit operator long int() const
-
转换为
longint数据类型的运算符。将过大的输入值钳制到输出范围。如果输出类型为 32 位,则
NaN输入转换为零。如果输出类型为 64 位,则NaN输入转换为0x8000000000000000ULL。
-
__host__ __device__ inline explicit operator long long int() const
-
转换为
longlongint数据类型的运算符。将过大的输入值钳制到输出范围。
NaN输入转换为0x8000000000000000LL。
-
__host__ __device__ inline explicit operator short int() const
-
转换为
shortint数据类型的运算符。将过大的输入值钳制到输出范围。
NaN输入转换为零。
-
__host__ __device__ inline explicit operator signed char() const
-
转换为
signedchar数据类型的运算符。将过大的输入值钳制到输出范围。
NaN输入转换为零。
-
__host__ __device__ inline explicit operator unsigned char() const
-
转换为
unsignedchar数据类型的运算符。将负数和过大的输入值钳制到输出范围。
NaN输入转换为零。
-
__host__ __device__ inline explicit operator unsigned int() const
-
转换为
unsignedint数据类型的运算符。将负数和过大的输入值钳制到输出范围。
NaN输入转换为零。
-
__host__ __device__ inline explicit operator unsigned long int() const
-
转换为
unsignedlongint数据类型的运算符。将负数和过大的输入值钳制到输出范围。如果输出类型为 32 位,则
NaN输入转换为零。如果输出类型为 64 位,则NaN输入转换为0x8000000000000000ULL。
-
__host__ __device__ inline explicit operator unsigned long long int() const
-
转换为
unsignedlonglongint数据类型的运算符。将负数和过大的输入值钳制到输出范围。
NaN输入转换为0x8000000000000000ULL。
-
__host__ __device__ inline explicit operator unsigned short int() const
-
转换为
unsignedshortint数据类型的转换运算符。将负数和过大的输入值钳制到输出范围。
NaN输入转换为零。
公有成员
-
__nv_fp8_storage_t __x
-
存储变量包含
fp8浮点数据。
-
__nv_fp8_e5m2() = default