15.19. __nv_fp8_e5m2
- 
struct __nv_fp8_e5m2
 
- 
__nv_fp8_e5m2 datatype This structure implements the datatype for handling fp8floating-point numbers ofe5m2kind: with 1 sign, 5 exponent, 1 implicit and 2 explicit mantissa bits.The structure implements converting constructors and operators. Public Functions - 
__nv_fp8_e5m2() = default
 
- 
Constructor by default. 
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const __half f)
 
- 
Constructor from __halfdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const __nv_bfloat16 f)
 
- 
Constructor from __nv_bfloat16data type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const double f)
 
- 
Constructor from doubledata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const float f)
 
- 
Constructor from floatdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const int val)
 
- 
Constructor from intdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const long int val)
 
- 
Constructor from longintdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const long long int val)
 
- 
Constructor from longlongintdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const short int val)
 
- 
Constructor from shortintdata type.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned int val)
 
- 
Constructor from unsignedintdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned long int val)
 
- 
Constructor from unsignedlongintdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned long long int val)
 
- 
Constructor from unsignedlonglongintdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit __nv_fp8_e5m2(const unsigned short int val)
 
- 
Constructor from unsignedshortintdata type, relies on__NV_SATFINITEbehavior for out-of-range values.
 - 
__host__ __device__ inline explicit operator __half() const
 
- 
Conversion operator to __halfdata type.
 - 
__host__ __device__ inline explicit operator __nv_bfloat16() const
 
- 
Conversion operator to __nv_bfloat16data type.
 - 
__host__ __device__ inline explicit operator bool() const
 
- 
Conversion operator to booldata type.+0 and -0 inputs convert to false. Non-zero inputs convert totrue.
 - 
__host__ __device__ inline explicit operator char() const
 
- 
Conversion operator to an implementation defined chardata type.Detects signedness of the chartype and proceeds accordingly, see further details in signed and unsigned char operators.Clamps inputs to the output range. NaNinputs convert tozero.
 - 
__host__ __device__ inline explicit operator double() const
 
- 
Conversion operator to doubledata type.
 - 
__host__ __device__ inline explicit operator float() const
 
- 
Conversion operator to floatdata type.
 - 
__host__ __device__ inline explicit operator int() const
 
- 
Conversion operator to intdata type.Clamps too large inputs to the output range. NaNinputs convert tozero.
 - 
__host__ __device__ inline explicit operator long int() const
 
- 
Conversion operator to longintdata type.Clamps too large inputs to the output range. NaNinputs convert tozeroif output type is 32-bit.NaNinputs convert to0x8000000000000000ULLif output type is 64-bit.
 - 
__host__ __device__ inline explicit operator long long int() const
 
- 
Conversion operator to longlongintdata type.Clamps too large inputs to the output range. NaNinputs convert to0x8000000000000000LL.
 - 
__host__ __device__ inline explicit operator short int() const
 
- 
Conversion operator to shortintdata type.Clamps too large inputs to the output range. NaNinputs convert tozero.
 - 
__host__ __device__ inline explicit operator signed char() const
 
- 
Conversion operator to signedchardata type.Clamps too large inputs to the output range. NaNinputs convert tozero.
 - 
__host__ __device__ inline explicit operator unsigned char() const
 
- 
Conversion operator to unsignedchardata type.Clamps negative and too large inputs to the output range. NaNinputs convert tozero.
 - 
__host__ __device__ inline explicit operator unsigned int() const
 
- 
Conversion operator to unsignedintdata type.Clamps negative and too large inputs to the output range. NaNinputs convert tozero.
 - 
__host__ __device__ inline explicit operator unsigned long int() const
 
- 
Conversion operator to unsignedlongintdata type.Clamps negative and too large inputs to the output range. NaNinputs convert tozeroif output type is 32-bit.NaNinputs convert to0x8000000000000000ULLif output type is 64-bit.
 - 
__host__ __device__ inline explicit operator unsigned long long int() const
 
- 
Conversion operator to unsignedlonglongintdata type.Clamps negative and too large inputs to the output range. NaNinputs convert to0x8000000000000000ULL.
 - 
__host__ __device__ inline explicit operator unsigned short int() const
 
- 
Conversion operator to unsignedshortintdata type.Clamps negative and too large inputs to the output range. NaNinputs convert tozero.
 Public Members - 
__nv_fp8_storage_t __x
 
- 
Storage variable contains the fp8floating-point data.
 
- 
__nv_fp8_e5m2() = default