4.3. 半精度比较函数
要使用这些函数,请在程序中包含头文件cuda_fp16.h。
Functions
- __host__ __device__ bool __heq(const __half a, const __half b)
-
执行
half半精度浮点数的相等比较。 - __host__ __device__ bool __hequ(const __half a, const __half b)
-
执行
half无序等值比较。 - __host__ __device__ bool __hge(const __half a, const __half b)
-
执行
half大于等于比较。 - __host__ __device__ bool __hgeu(const __half a, const __half b)
-
执行
half无序大于等于比较。 - __host__ __device__ bool __hgt(const __half a, const __half b)
-
执行
half大于比较。 - __host__ __device__ bool __hgtu(const __half a, const __half b)
-
执行
half无序大于比较。 - __host__ __device__ int __hisinf(const __half a)
-
检查输入的
half数字是否为无穷大。 - __host__ __device__ bool __hisnan(const __half a)
-
判断
half参数是否为NaN。 - __host__ __device__ bool __hle(const __half a, const __half b)
-
执行
half半精度小于等于比较。 - __host__ __device__ bool __hleu(const __half a, const __half b)
-
执行
half无序小于等于比较。 - __host__ __device__ bool __hlt(const __half a, const __half b)
-
执行
half半精度小于比较。 - __host__ __device__ bool __hltu(const __half a, const __half b)
-
执行
half无序小于比较。 - __host__ __device__ __half __hmax(const __half a, const __half b)
-
计算两个输入值的
half最大值。 - __host__ __device__ __half __hmax_nan(const __half a, const __half b)
-
计算两个输入值的
half最大值,NaN值直接传递。 - __host__ __device__ __half __hmin(const __half a, const __half b)
-
计算两个输入值的
half最小值。 - __host__ __device__ __half __hmin_nan(const __half a, const __half b)
-
计算两个输入值的
half最小值,NaN值直接传递。 - __host__ __device__ bool __hne(const __half a, const __half b)
-
执行
half不等于比较。 - __host__ __device__ bool __hneu(const __half a, const __half b)
-
执行
half无序不等于比较。 - __host__ __device__ bool operator!=(const __half &lh, const __half &rh)
-
执行
half无序不等于比较操作。 - __host__ __device__ bool operator<(const __half &lh, const __half &rh)
-
执行
half有序小于比较操作。 - __host__ __device__ bool operator<=(const __half &lh, const __half &rh)
-
执行
half有序小于等于比较操作。 - __host__ __device__ bool operator==(const __half &lh, const __half &rh)
-
执行
half有序比较相等操作。 - __host__ __device__ bool operator>(const __half &lh, const __half &rh)
-
执行
half有序大于比较操作。 - __host__ __device__ bool operator>=(const __half &lh, const __half &rh)
-
执行
half有序大于等于比较操作。
4.3.1. 功能
-
__host__ __device__ bool __heq(const __half a, const __half b)
-
执行
half半精度浮点数的等值比较。对输入
a和b执行half类型的等值比较。NaN输入会产生false结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b进行相等比较的布尔结果。
-
__host__ __device__ bool __hequ(const __half a, const __half b)
-
执行
half无序的if-equal比较。对输入
a和b执行half类型的等值比较。NaN输入会产生true结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的无序相等比较的布尔结果。
-
__host__ __device__ bool __hge(const __half a, const __half b)
-
执行
half大于等于比较。对输入
a和b执行half类型的"大于等于"比较。NaN输入会产生false结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的大于等于比较的布尔结果。
-
__host__ __device__ bool __hgeu(const __half a, const __half b)
-
执行
half无序大于等于比较。对输入
a和b执行half类型的"大于等于"比较。NaN输入会产生true结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的无序大于等于比较的布尔结果。
-
__host__ __device__ bool __hgt(const __half a, const __half b)
-
执行
half大于比较。对输入
a和b执行half类型的大于比较。NaN输入会产生false结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b进行大于比较的布尔结果。
-
__host__ __device__ bool __hgtu(const __half a, const __half b)
-
执行
half无序大于比较。对输入
a和b执行half类型的大于比较。NaN输入会产生true结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的无序大于比较的布尔结果。
-
__host__ __device__ int __hisinf(const __half a)
-
检查输入的
half数值是否为无穷大。检查输入的
half数值a是否为无穷大。- Parameters
-
a – [输入] - 半精度。仅用于读取。
- Returns
-
int
如果
a等于负无穷大,则返回 -1如果
a等于正无穷大,则返回 1否则为0。
-
__host__ __device__ bool __hisnan(const __half a)
-
判断
half参数是否为NaN。判断
half值a是否为NaN。- Parameters
-
a – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
如果参数是NaN则返回true。
-
__host__ __device__ bool __hle(const __half a, const __half b)
-
执行
half半精度小于等于比较。对输入
a和b执行half类型的"小于等于"比较。NaN输入会产生false结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的小于等于比较的布尔结果。
-
__host__ __device__ bool __hleu(const __half a, const __half b)
-
执行
half无序小于等于比较。对输入
a和b执行half类型的"小于等于"比较。NaN输入会产生true结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
对
a和b进行无序小于等于比较的布尔结果。
-
__host__ __device__ bool __hlt(const __half a, const __half b)
-
执行
half半精度小于比较。对输入
a和b执行half类型的小于比较。NaN输入会产生false结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b小于比较的布尔结果。
-
__host__ __device__ bool __hltu(const __half a, const __half b)
-
执行
half无序小于比较。对输入
a和b执行half类型的小于比较。NaN输入会产生true结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的无序小于比较的布尔结果。
-
__host__ __device__ __half __hmax(const __half a, const __half b)
-
计算两个输入值的
half最大值。计算
halfmax(a,b) 定义为 (a>b) ?a:b。如果任一输入为NaN,则返回另一个输入。
如果两个输入都是NaN,则返回规范NaN。
如果两个输入值均为0.0,则+0.0 > -0.0
- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
半精度浮点数
-
__host__ __device__ __half __hmax_nan(const __half a, const __half b)
-
计算两个输入值的
half最大值,NaN值直接透传。计算
halfmax(a,b) 定义为 (a>b) ?a:b。如果任一输入为NaN,则返回标准NaN。
如果两个输入值均为0.0,则+0.0 > -0.0
- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
半精度浮点数
-
__host__ __device__ __half __hmin(const __half a, const __half b)
-
计算两个输入值的
half最小值。计算
half最小值(a,b)定义为(a<b) ?a:b。如果任一输入为NaN,则返回另一个输入。
如果两个输入都是NaN,则返回规范NaN。
如果两个输入值均为0.0,则+0.0 > -0.0
- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
半精度浮点数
-
__host__ __device__ __half __hmin_nan(const __half a, const __half b)
-
计算两个输入值的
half最小值,NaN值直接传递。计算
halfmin(a,b)定义为(a<b) ?a:b。如果任一输入为NaN,则返回标准NaN。
如果两个输入值均为0.0,则+0.0 > -0.0
- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
半精度浮点数
-
__host__ __device__ bool __hne(const __half a, const __half b)
-
执行
half不等于比较。对输入
a和b执行half类型的非等值比较。NaN输入会产生false结果。- Parameters
-
a – [输入] - 半精度。仅用于读取。
b – [输入] - 半精度。仅用于读取。
- Returns
-
布尔值
a和b的不等于比较的布尔结果。