5.3. Bfloat16 比较函数

要使用这些函数,请在您的程序中包含头文件 cuda_bf16.h

函数

__host__ __device__ bool __heq(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 if-equal 比较。

__host__ __device__ bool __hequ(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序 if-equal 比较。

__host__ __device__ bool __hge(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 大于等于比较。

__host__ __device__ bool __hgeu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序大于等于比较。

__host__ __device__ bool __hgt(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 大于比较。

__host__ __device__ bool __hgtu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序大于比较。

__host__ __device__ int __hisinf(const __nv_bfloat16 a)

检查输入的 nv_bfloat16 数字是否为无穷大。

__host__ __device__ bool __hisnan(const __nv_bfloat16 a)

确定 nv_bfloat16 参数是否为 NaN。

__host__ __device__ bool __hle(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 小于等于比较。

__host__ __device__ bool __hleu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序小于等于比较。

__host__ __device__ bool __hlt(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 小于比较。

__host__ __device__ bool __hltu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序小于比较。

__host__ __device__ __nv_bfloat16 __hmax(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最大值。

__host__ __device__ __nv_bfloat16 __hmax_nan(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最大值,NaNs 透传。

__host__ __device__ __nv_bfloat16 __hmin(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最小值。

__host__ __device__ __nv_bfloat16 __hmin_nan(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最小值,NaNs 透传。

__host__ __device__ bool __hne(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 不等于比较。

__host__ __device__ bool __hneu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序不等于比较。

__host__ __device__ bool operator!=(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 无序不等于比较操作。

__host__ __device__ bool operator<(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序小于比较操作。

__host__ __device__ bool operator<=(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序小于等于比较操作。

__host__ __device__ bool operator==(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序等于比较操作。

__host__ __device__ bool operator>(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序大于比较操作。

__host__ __device__ bool operator>=(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序大于等于比较操作。

5.3.1. 函数

__host__ __device__ bool __heq(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 if-equal 比较。

执行输入 abnv_bfloat16 if-equal 比较。 NaN 输入生成 false 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的 if-equal 比较的布尔结果。

__host__ __device__ bool __hequ(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序 if-equal 比较。

执行输入 abnv_bfloat16 if-equal 比较。 NaN 输入生成 true 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的无序 if-equal 比较的布尔结果。

__host__ __device__ bool __hge(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 大于等于比较。

执行输入 abnv_bfloat16 大于等于比较。 NaN 输入生成 false 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的大于等于比较的布尔结果。

__host__ __device__ bool __hgeu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序大于等于比较。

执行输入 abnv_bfloat16 大于等于比较。 NaN 输入生成 true 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的无序大于等于比较的布尔结果。

__host__ __device__ bool __hgt(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 大于比较。

执行输入 abnv_bfloat16 大于比较。 NaN 输入生成 false 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的大于比较的布尔结果。

__host__ __device__ bool __hgtu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序大于比较。

执行输入 abnv_bfloat16 大于比较。 NaN 输入生成 true 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的无序大于比较的布尔结果。

__host__ __device__ int __hisinf(const __nv_bfloat16 a)

检查输入的 nv_bfloat16 数字是否为无穷大。

检查输入的 nv_bfloat16 数字 a 是否为无穷大。

参数

a[in] - nv_bfloat16。仅被读取。

返回值

int

  • -1 如果 a 等于负无穷大,

  • 1 如果 a 等于正无穷大,

  • 0 否则。

__host__ __device__ bool __hisnan(const __nv_bfloat16 a)

确定 nv_bfloat16 参数是否为 NaN。

确定 nv_bfloat16a 是否为 NaN。

参数

a[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 如果参数是 NaN,则为 true。

__host__ __device__ bool __hle(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 小于等于比较。

执行输入 abnv_bfloat16 小于等于比较。 NaN 输入生成 false 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的小于等于比较的布尔结果。

__host__ __device__ bool __hleu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序小于等于比较。

执行输入 abnv_bfloat16 小于等于比较。 NaN 输入生成 true 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的无序小于等于比较的布尔结果。

__host__ __device__ bool __hlt(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 小于比较。

执行输入 abnv_bfloat16 小于比较。 NaN 输入生成 false 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的小于比较的布尔结果。

__host__ __device__ bool __hltu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序小于比较。

执行输入 abnv_bfloat16 小于比较。 NaN 输入生成 true 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • 输入 ab 的无序小于比较的布尔结果。

__host__ __device__ __nv_bfloat16 __hmax(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最大值。

计算 nv_bfloat16 max(a, b),定义为 (a > b) ? a : b

  • 如果任何一个输入是 NaN,则返回另一个输入。

  • 如果两个输入都是 NaN,则返回规范 NaN。

  • 如果两个输入的值都是 0.0,则 +0.0 > -0.0

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

nv_bfloat16

__host__ __device__ __nv_bfloat16 __hmax_nan(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最大值,NaNs 透传。

计算 nv_bfloat16 max(a, b),定义为 (a > b) ? a : b

  • 如果任何一个输入是 NaN,则返回规范 NaN。

  • 如果两个输入的值都是 0.0,则 +0.0 > -0.0

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

nv_bfloat16

__host__ __device__ __nv_bfloat16 __hmin(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最小值。

计算 nv_bfloat16 min(a, b),定义为 (a < b) ? a : b

  • 如果任何一个输入是 NaN,则返回另一个输入。

  • 如果两个输入都是 NaN,则返回规范 NaN。

  • 如果两个输入的值都是 0.0,则 +0.0 > -0.0

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

nv_bfloat16

__host__ __device__ __nv_bfloat16 __hmin_nan(const __nv_bfloat16 a, const __nv_bfloat16 b)

计算两个输入值的 nv_bfloat16 最小值,NaNs 透传。

计算 nv_bfloat16 min(a, b),定义为 (a < b) ? a : b

  • 如果任何一个输入是 NaN,则返回规范 NaN。

  • 如果两个输入的值都是 0.0,则 +0.0 > -0.0

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

nv_bfloat16

__host__ __device__ bool __hne(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 不等于比较。

执行 nv_bfloat16 a 和 b 的不等于比较。NaN 输入产生 false 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • a 和 b 不等于比较的布尔结果。

__host__ __device__ bool __hneu(const __nv_bfloat16 a, const __nv_bfloat16 b)

执行 nv_bfloat16 无序不等于比较。

执行 nv_bfloat16 a 和 b 的不等于比较。NaN 输入产生 true 结果。

参数
  • a[in] - nv_bfloat16。仅被读取。

  • b[in] - nv_bfloat16。仅被读取。

返回值

bool

  • a 和 b 无序不等于比较的布尔结果。

__host__ __device__ bool operator!=(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 无序不等于比较操作。

另请参阅 __hneu(__nv_bfloat16, __nv_bfloat16)

__host__ __device__ bool operator<(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序小于比较操作。

另请参阅 __hlt(__nv_bfloat16, __nv_bfloat16)

__host__ __device__ bool operator<=(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序小于等于比较操作。

另请参阅 __hle(__nv_bfloat16, __nv_bfloat16)

__host__ __device__ bool operator==(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序等于比较操作。

另请参阅 __heq(__nv_bfloat16, __nv_bfloat16)

__host__ __device__ bool operator>(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序大于比较操作。

另请参阅 __hgt(__nv_bfloat16, __nv_bfloat16)

__host__ __device__ bool operator>=(const __nv_bfloat16 &lh, const __nv_bfloat16 &rh)

执行 nv_bfloat16 有序大于等于比较操作。

另请参阅 __hge(__nv_bfloat16, __nv_bfloat16)