15.18.__nv_fp8_e4m3

struct__nv_fp8_e4m3

__nv_fp8_e4m3 datatype

This structure implements the datatype for storingfp8 floating-point numbers ofe4m3 kind: with 1 sign, 4 exponent, 1 implicit and 3 explicit mantissa bits. The encoding doesn’t support Infinity. NaNs are limited to 0x7F and 0xFF values.

The structure implements converting constructors and operators.

Public Functions

__nv_fp8_e4m3()=default

Constructor by default.

__host____device__inlineexplicit__nv_fp8_e4m3(const__halff)

Constructor from__half data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(const__nv_bfloat16f)

Constructor from__nv_bfloat16 data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constdoublef)

Constructor fromdouble data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constfloatf)

Constructor fromfloat data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constintval)

Constructor fromint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constlongintval)

Constructor fromlongint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constlonglongintval)

Constructor fromlonglongint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constshortintval)

Constructor fromshortint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constunsignedintval)

Constructor fromunsignedint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constunsignedlongintval)

Constructor fromunsignedlongint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constunsignedlonglongintval)

Constructor fromunsignedlonglongint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicit__nv_fp8_e4m3(constunsignedshortintval)

Constructor fromunsignedshortint data type, relies on__NV_SATFINITE behavior for out-of-range values.

__host____device__inlineexplicitoperator__half()const

Conversion operator to__half data type.

__host____device__inlineexplicitoperator__nv_bfloat16()const

Conversion operator to__nv_bfloat16 data type.

__host____device__inlineexplicitoperatorbool()const

Conversion operator tobool data type.

+0 and -0 inputs convert tofalse. Non-zero inputs convert totrue.

__host____device__inlineexplicitoperatorchar()const

Conversion operator to an implementation definedchar data type.

Detects signedness of thechar type and proceeds accordingly, see further details in signed and unsigned char operators.

Clamps inputs to the output range.NaN inputs convert tozero.

__host____device__inlineexplicitoperatordouble()const

Conversion operator todouble data type.

__host____device__inlineexplicitoperatorfloat()const

Conversion operator tofloat data type.

__host____device__inlineexplicitoperatorint()const

Conversion operator toint data type.

NaN inputs convert tozero.

__host____device__inlineexplicitoperatorlongint()const

Conversion operator tolongint data type.

Clamps too large inputs to the output range.NaN inputs convert tozero if output type is 32-bit.NaN inputs convert to0x8000000000000000ULL if output type is 64-bit.

__host____device__inlineexplicitoperatorlonglongint()const

Conversion operator tolonglongint data type.

NaN inputs convert to0x8000000000000000LL.

__host____device__inlineexplicitoperatorshortint()const

Conversion operator toshortint data type.

NaN inputs convert tozero.

__host____device__inlineexplicitoperatorsignedchar()const

Conversion operator tosignedchar data type.

Clamps too large inputs to the output range.NaN inputs convert tozero.

__host____device__inlineexplicitoperatorunsignedchar()const

Conversion operator tounsignedchar data type.

Clamps negative and too large inputs to the output range.NaN inputs convert tozero.

__host____device__inlineexplicitoperatorunsignedint()const

Conversion operator tounsignedint data type.

Clamps negative inputs to zero.NaN inputs convert tozero.

__host____device__inlineexplicitoperatorunsignedlongint()const

Conversion operator tounsignedlongint data type.

Clamps negative and too large inputs to the output range.NaN inputs convert tozero if output type is 32-bit.NaN inputs convert to0x8000000000000000ULL if output type is 64-bit.

__host____device__inlineexplicitoperatorunsignedlonglongint()const

Conversion operator tounsignedlonglongint data type.

Clamps negative inputs to zero.NaN inputs convert to0x8000000000000000ULL.

__host____device__inlineexplicitoperatorunsignedshortint()const

Conversion operator tounsignedshortint data type.

Clamps negative inputs to zero.NaN inputs convert tozero.

Public Members

__nv_fp8_storage_t__x

Storage variable contains thefp8 floating-point data.