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 比较。执行输入
a
和b
的nv_bfloat16
if-equal 比较。 NaN 输入生成 false 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的 if-equal 比较的布尔结果。
-
__host__ __device__ bool __hequ(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
无序 if-equal 比较。执行输入
a
和b
的nv_bfloat16
if-equal 比较。 NaN 输入生成 true 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的无序 if-equal 比较的布尔结果。
-
__host__ __device__ bool __hge(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
大于等于比较。执行输入
a
和b
的nv_bfloat16
大于等于比较。 NaN 输入生成 false 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的大于等于比较的布尔结果。
-
__host__ __device__ bool __hgeu(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
无序大于等于比较。执行输入
a
和b
的nv_bfloat16
大于等于比较。 NaN 输入生成 true 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的无序大于等于比较的布尔结果。
-
__host__ __device__ bool __hgt(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
大于比较。执行输入
a
和b
的nv_bfloat16
大于比较。 NaN 输入生成 false 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的大于比较的布尔结果。
-
__host__ __device__ bool __hgtu(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
无序大于比较。执行输入
a
和b
的nv_bfloat16
大于比较。 NaN 输入生成 true 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的无序大于比较的布尔结果。
-
__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_bfloat16
值a
是否为 NaN。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
如果参数是 NaN,则为 true。
-
__host__ __device__ bool __hle(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
小于等于比较。执行输入
a
和b
的nv_bfloat16
小于等于比较。 NaN 输入生成 false 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的小于等于比较的布尔结果。
-
__host__ __device__ bool __hleu(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
无序小于等于比较。执行输入
a
和b
的nv_bfloat16
小于等于比较。 NaN 输入生成 true 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的无序小于等于比较的布尔结果。
-
__host__ __device__ bool __hlt(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
小于比较。执行输入
a
和b
的nv_bfloat16
小于比较。 NaN 输入生成 false 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的小于比较的布尔结果。
-
__host__ __device__ bool __hltu(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
执行
nv_bfloat16
无序小于比较。执行输入
a
和b
的nv_bfloat16
小于比较。 NaN 输入生成 true 结果。- 参数
-
a – [in] - nv_bfloat16。仅被读取。
b – [in] - nv_bfloat16。仅被读取。
- 返回值
-
bool
输入
a
和b
的无序小于比较的布尔结果。
-
__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
无序不等于比较操作。
-
__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
有序大于等于比较操作。