1.2.4. Bfloat162 Comparison Functions

[Bfloat16 Precision Intrinsics]

To use these functions include the header file cuda_bf16.h in your program.

Functions

__device__ ​ bool __hbeq2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector if-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbequ2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered if-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbge2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbgeu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbgt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbgtu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hble2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbleu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hblt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbltu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbne2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector not-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ bool __hbneu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered not-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
__device__ ​ __nv_bfloat162 __heq2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector if-equal comparison.
__device__ ​ __nv_bfloat162 __hequ2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered if-equal comparison.
__device__ ​ __nv_bfloat162 __hge2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-equal comparison.
__device__ ​ __nv_bfloat162 __hgeu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-equal comparison.
__device__ ​ __nv_bfloat162 __hgt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-than comparison.
__device__ ​ __nv_bfloat162 __hgtu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-than comparison.
__device__ ​ __nv_bfloat162 __hisnan2 ( const __nv_bfloat162 a )
Determine whether nv_bfloat162 argument is a NaN.
__device__ ​ __nv_bfloat162 __hle2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-equal comparison.
__device__ ​ __nv_bfloat162 __hleu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-equal comparison.
__device__ ​ __nv_bfloat162 __hlt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-than comparison.
__device__ ​ __nv_bfloat162 __hltu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-than comparison.
__device__ ​ __nv_bfloat162 __hmax2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector maximum of two inputs.
__device__ ​ __nv_bfloat162 __hmax2_nan ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector maximum of two inputs, NaNs pass through.
__device__ ​ __nv_bfloat162 __hmin2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector minimum of two inputs.
__device__ ​ __nv_bfloat162 __hmin2_nan ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector minimum of two inputs, NaNs pass through.
__device__ ​ __nv_bfloat162 __hne2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector not-equal comparison.
__device__ ​ __nv_bfloat162 __hneu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered not-equal comparison.

Functions

__device__ ​ bool __hbeq2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector if-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of if-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector if-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 if-equal comparisons evaluate to true, or false otherwise. NaN inputs generate false results.

__device__ ​ bool __hbequ2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered if-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of unordered if-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector if-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 if-equal comparisons evaluate to true, or false otherwise. NaN inputs generate true results.

__device__ ​ bool __hbge2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of greater-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector greater-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 greater-equal comparisons evaluate to true, or false otherwise. NaN inputs generate false results.

__device__ ​ bool __hbgeu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of unordered greater-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector greater-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 greater-equal comparisons evaluate to true, or false otherwise. NaN inputs generate true results.

__device__ ​ bool __hbgt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of greater-than comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector greater-than comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 greater-than comparisons evaluate to true, or false otherwise. NaN inputs generate false results.

__device__ ​ bool __hbgtu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of unordered greater-than comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector greater-than comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 greater-than comparisons evaluate to true, or false otherwise. NaN inputs generate true results.

__device__ ​ bool __hble2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of less-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector less-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 less-equal comparisons evaluate to true, or false otherwise. NaN inputs generate false results.

__device__ ​ bool __hbleu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of unordered less-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector less-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 less-equal comparisons evaluate to true, or false otherwise. NaN inputs generate true results.

__device__ ​ bool __hblt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of less-than comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector less-than comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 less-than comparisons evaluate to true, or false otherwise. NaN inputs generate false results.

__device__ ​ bool __hbltu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-than comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of unordered less-than comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector less-than comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 less-than comparisons evaluate to true, or false otherwise. NaN inputs generate true results.

__device__ ​ bool __hbne2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector not-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of not-equal comparison of vectors a and b are true,

  • false

    otherwise.

Description

Performs nv_bfloat162 vector not-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 not-equal comparisons evaluate to true, or false otherwise. NaN inputs generate false results.

__device__ ​ bool __hbneu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered not-equal comparison, and returns boolean true iff both nv_bfloat16 results are true, boolean false otherwise.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

bool

  • trueif

    both nv_bfloat16 results of unordered not-equal comparison of vectors a and b are true;

  • falseotherwise.

Description

Performs nv_bfloat162 vector not-equal comparison of inputs a and b. The bool result is set to true only if both nv_bfloat16 not-equal comparisons evaluate to true, or false otherwise. NaN inputs generate true results.

__device__ ​ __nv_bfloat162 __heq2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector if-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of if-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector if-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate false results.

__device__ ​ __nv_bfloat162 __hequ2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered if-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of unordered if-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector if-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate true results.

__device__ ​ __nv_bfloat162 __hge2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of greater-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector greater-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate false results.

__device__ ​ __nv_bfloat162 __hgeu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    nv_bfloat162 vector result of unordered greater-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector greater-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate true results.

__device__ ​ __nv_bfloat162 __hgt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector greater-than comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of greater-than comparison of vectors a and b.

Description

Performs nv_bfloat162 vector greater-than comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate false results.

__device__ ​ __nv_bfloat162 __hgtu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered greater-than comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    nv_bfloat162 vector result of unordered greater-than comparison of vectors a and b.

Description

Performs nv_bfloat162 vector greater-than comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate true results.

__device__ ​ __nv_bfloat162 __hisnan2 ( const __nv_bfloat162 a )
Determine whether nv_bfloat162 argument is a NaN.
Parameters
a
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    nv_bfloat162 with the corresponding nv_bfloat16 results set to 1.0 for for NaN, 0.0 otherwise.

Description

Determine whether each nv_bfloat16 of input nv_bfloat162 number a is a NaN.

__device__ ​ __nv_bfloat162 __hle2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    nv_bfloat162 result of less-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector less-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate false results.

__device__ ​ __nv_bfloat162 __hleu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of unordered less-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector less-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate true results.

__device__ ​ __nv_bfloat162 __hlt2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector less-than comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    nv_bfloat162 vector result of less-than comparison of vectors a and b.

Description

Performs nv_bfloat162 vector less-than comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate false results.

__device__ ​ __nv_bfloat162 __hltu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered less-than comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of unordered less-than comparison of vectors a and b.

Description

Performs nv_bfloat162 vector less-than comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate true results.

__device__ ​ __nv_bfloat162 __hmax2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector maximum of two inputs.
Description

Calculates nv_bfloat162 vector max(a, b) Elementwise nv_bfloat16 operation is defined as (a > b) ? a : b.

  • If either of inputs is NaN, the other input is returned.

  • If both inputs are NaNs, then canonical NaN is returned.

  • If values of both inputs are 0.0, then +0.0 > -0.0

__device__ ​ __nv_bfloat162 __hmax2_nan ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector maximum of two inputs, NaNs pass through.
Description

Calculates nv_bfloat162 vector max(a, b) Elementwise nv_bfloat16 operation is defined as (a > b) ? a : b.

  • If either of inputs is NaN, then canonical NaN is returned.

  • If values of both inputs are 0.0, then +0.0 > -0.0

__device__ ​ __nv_bfloat162 __hmin2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector minimum of two inputs.
Description

Calculates nv_bfloat162 vector min(a, b) Elementwise nv_bfloat16 operation is defined as (a < b) ? a : b.

  • If either of inputs is NaN, the other input is returned.

  • If both inputs are NaNs, then canonical NaN is returned.

  • If values of both inputs are 0.0, then +0.0 > -0.0

__device__ ​ __nv_bfloat162 __hmin2_nan ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Calculates nv_bfloat162 vector minimum of two inputs, NaNs pass through.
Description

Calculates nv_bfloat162 vector min(a, b) Elementwise nv_bfloat16 operation is defined as (a < b) ? a : b.

  • If either of inputs is NaN, then canonical NaN is returned.

  • If values of both inputs are 0.0, then +0.0 > -0.0

__device__ ​ __nv_bfloat162 __hne2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector not-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of not-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector not-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate false results.

__device__ ​ __nv_bfloat162 __hneu2 ( const __nv_bfloat162 a, const __nv_bfloat162 b )
Performs nv_bfloat162 vector unordered not-equal comparison.
Parameters
a
- nv_bfloat162. Is only being read.
b
- nv_bfloat162. Is only being read.
Returns

nv_bfloat162

  • The

    vector result of unordered not-equal comparison of vectors a and b.

Description

Performs nv_bfloat162 vector not-equal comparison of inputs a and b. The corresponding nv_bfloat16 results are set to 1.0 for true, or 0.0 for false. NaN inputs generate true results.