5.5. Bfloat16精度转换与数据移动
要使用这些函数,请在程序中包含头文件cuda_bf16.h。
Functions
- __host__ __device__ float2 __bfloat1622float2(const __nv_bfloat162 a)
-
将
nv_bfloat162的两半部分转换为float2并返回结果。 - __host__ __device__ __nv_bfloat162 __bfloat162bfloat162(const __nv_bfloat16 a)
-
返回一个
nv_bfloat162,其两个半部分都等于输入值。 - __host__ __device__ signed char __bfloat162char_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号字符,采用向零舍入模式。
- __host__ __device__ float __bfloat162float(const __nv_bfloat16 a)
-
将
nv_bfloat16数字转换为浮点数。 - __device__ int __bfloat162int_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为向下取整模式的有符号整数。
- __device__ int __bfloat162int_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为采用四舍五入到最近偶数模式的带符号整数。
- __device__ int __bfloat162int_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为向上取整模式下的有符号整数。
- __host__ __device__ int __bfloat162int_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号整数,采用向零舍入模式。
- __device__ long long int __bfloat162ll_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号64位整数(向下舍入模式)。
- __device__ long long int __bfloat162ll_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号64位整数,采用四舍五入到最近的偶数模式。
- __device__ long long int __bfloat162ll_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为采用向上取整模式的有符号64位整数。
- __host__ __device__ long long int __bfloat162ll_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号64位整数,采用向零舍入模式。
- __device__ short int __bfloat162short_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整型,采用向下舍入模式。
- __device__ short int __bfloat162short_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整数,采用四舍五入到最近的偶数模式。
- __device__ short int __bfloat162short_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整数,采用向上取整模式。
- __host__ __device__ short int __bfloat162short_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整型,采用向零舍入模式。
- __host__ __device__ unsigned char __bfloat162uchar_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号字符,采用向零舍入模式。
- __device__ unsigned int __bfloat162uint_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用向下舍入模式。
- __device__ unsigned int __bfloat162uint_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用四舍五入到最近的偶数模式。
- __device__ unsigned int __bfloat162uint_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用向上取整模式。
- __host__ __device__ unsigned int __bfloat162uint_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用向零舍入模式。
- __device__ unsigned long long int __bfloat162ull_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用向下舍入模式。
- __device__ unsigned long long int __bfloat162ull_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用四舍五入到最接近的偶数模式。
- __device__ unsigned long long int __bfloat162ull_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用向上取整模式。
- __host__ __device__ unsigned long long int __bfloat162ull_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用向零舍入模式。
- __device__ unsigned short int __bfloat162ushort_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整型,采用向下舍入模式。
- __device__ unsigned short int __bfloat162ushort_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整数,采用四舍五入到最接近的偶数模式。
- __device__ unsigned short int __bfloat162ushort_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整数,采用向上取整模式。
- __host__ __device__ unsigned short int __bfloat162ushort_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整型,采用向零舍入模式。
- __host__ __device__ short int __bfloat16_as_short(const __nv_bfloat16 h)
-
将
nv_bfloat16中的位重新解释为有符号短整数。 - __host__ __device__ unsigned short int __bfloat16_as_ushort(const __nv_bfloat16 h)
-
将
nv_bfloat16中的位重新解释为无符号短整型。 - __host__ __device__ __nv_bfloat16 __double2bfloat16(const double a)
-
将双精度数字转换为nv_bfloat16精度(采用四舍五入到最接近偶数模式),并返回带有转换值的
nv_bfloat16。 - __host__ __device__ __nv_bfloat162 __float22bfloat162_rn(const float2 a)
-
将float2数值的两个分量转换为nv_bfloat16精度(采用四舍五入到最近的偶数模式),并返回包含转换后值的
nv_bfloat162。 - __host__ __device__ __nv_bfloat16 __float2bfloat16(const float a)
-
将浮点数转换为nv_bfloat16精度(采用四舍五入到最近的偶数模式),并返回带有转换值的
nv_bfloat16。 - __host__ __device__ __nv_bfloat162 __float2bfloat162_rn(const float a)
-
将输入转换为nv_bfloat16精度(采用四舍五入到最接近偶数模式),并将转换后的值填充到
nv_bfloat162的两个半部分中。 - __host__ __device__ __nv_bfloat16 __float2bfloat16_rd(const float a)
-
将浮点数转换为向下舍入模式的nv_bfloat16精度,并返回带有转换值的
nv_bfloat16。 - __host__ __device__ __nv_bfloat16 __float2bfloat16_rn(const float a)
-
将浮点数转换为nv_bfloat16精度(采用四舍五入到最接近偶数的模式),并返回带有转换值的
nv_bfloat16。 - __host__ __device__ __nv_bfloat16 __float2bfloat16_ru(const float a)
-
将浮点数转换为nv_bfloat16精度(向上舍入模式),并返回带有转换值的
nv_bfloat16。 - __host__ __device__ __nv_bfloat16 __float2bfloat16_rz(const float a)
-
将浮点数转换为nv_bfloat16精度(采用向零舍入模式),并返回带有转换后值的
nv_bfloat16。 - __host__ __device__ __nv_bfloat162 __floats2bfloat162_rn(const float a, const float b)
-
将两个输入的浮点数转换为nv_bfloat16精度(采用四舍五入到最近的偶数模式),并返回包含转换后值的
nv_bfloat162。 - __host__ __device__ __nv_bfloat162 __halves2bfloat162(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
将两个
nv_bfloat16数值合并为一个nv_bfloat162数值。 - __host__ __device__ __nv_bfloat16 __high2bfloat16(const __nv_bfloat162 a)
-
返回
nv_bfloat162输入的高16位。 - __host__ __device__ __nv_bfloat162 __high2bfloat162(const __nv_bfloat162 a)
-
从
nv_bfloat162输入中提取高16位。 - __host__ __device__ float __high2float(const __nv_bfloat162 a)
-
将
nv_bfloat162的高16位转换为浮点数并返回结果。 - __host__ __device__ __nv_bfloat162 __highs2bfloat162(const __nv_bfloat162 a, const __nv_bfloat162 b)
-
从两个
nv_bfloat162输入中分别提取高16位,并组合成一个nv_bfloat162数值。 - __device__ __nv_bfloat16 __int2bfloat16_rd(const int i)
-
将有符号整数转换为采用向下舍入模式的nv_bfloat16。
- __host__ __device__ __nv_bfloat16 __int2bfloat16_rn(const int i)
-
将有符号整数转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __int2bfloat16_ru(const int i)
-
将有符号整数转换为采用向上舍入模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __int2bfloat16_rz(const int i)
-
将有符号整数转换为采用向零舍入模式的nv_bfloat16。
- __device__ __nv_bfloat162 __ldca(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.ca加载指令。 - __device__ __nv_bfloat16 __ldca(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.ca加载指令。 - __device__ __nv_bfloat16 __ldcg(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.cg加载指令。 - __device__ __nv_bfloat162 __ldcg(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.cg加载指令。 - __device__ __nv_bfloat162 __ldcs(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.cs加载指令。 - __device__ __nv_bfloat16 __ldcs(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.cs加载指令。 - __device__ __nv_bfloat16 __ldcv(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.cv加载指令。 - __device__ __nv_bfloat162 __ldcv(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.cv加载指令。 - __device__ __nv_bfloat162 __ldg(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.nc加载指令。 - __device__ __nv_bfloat16 __ldg(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.nc加载指令。 - __device__ __nv_bfloat162 __ldlu(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.lu加载指令。 - __device__ __nv_bfloat16 __ldlu(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.lu加载指令。 - __device__ __nv_bfloat16 __ll2bfloat16_rd(const long long int i)
-
将有符号64位整数转换为nv_bfloat16格式,采用向下舍入模式。
- __host__ __device__ __nv_bfloat16 __ll2bfloat16_rn(const long long int i)
-
将有符号64位整数转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ll2bfloat16_ru(const long long int i)
-
将有符号64位整数转换为采用向上舍入模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ll2bfloat16_rz(const long long int i)
-
将有符号64位整数转换为采用向零舍入模式的nv_bfloat16格式。
- __host__ __device__ __nv_bfloat16 __low2bfloat16(const __nv_bfloat162 a)
-
返回
nv_bfloat162输入的低16位。 - __host__ __device__ __nv_bfloat162 __low2bfloat162(const __nv_bfloat162 a)
-
从
nv_bfloat162输入中提取低16位。 - __host__ __device__ float __low2float(const __nv_bfloat162 a)
-
将
nv_bfloat162的低16位转换为float并返回结果。 - __host__ __device__ __nv_bfloat162 __lowhigh2highlow(const __nv_bfloat162 a)
-
交换
nv_bfloat162输入的两半部分。 - __host__ __device__ __nv_bfloat162 __lows2bfloat162(const __nv_bfloat162 a, const __nv_bfloat162 b)
-
从两个
nv_bfloat162输入中各提取低16位,并组合成一个nv_bfloat162数值。 - __nv_bfloat162::__nv_bfloat162()=default
-
默认构造函数。
- __host__ __device__ constexpr __nv_bfloat162::__nv_bfloat162(const __nv_bfloat16 &a, const __nv_bfloat16 &b)
-
从两个
__nv_bfloat16变量构造。 - __host__ __device__ __nv_bfloat162::__nv_bfloat162(__nv_bfloat162 &&src)
-
移动构造函数,适用于
C++11及后续版本。 - __host__ __device__ __nv_bfloat162::__nv_bfloat162(const __nv_bfloat162_raw &h2r)
-
从
__nv_bfloat162_raw构造。 - __host__ __device__ __nv_bfloat162::__nv_bfloat162(const __nv_bfloat162 &src)
-
拷贝构造函数。
- __host__ __device__ __nv_bfloat162::operator __nv_bfloat162_raw() const
-
转换为
__nv_bfloat162_raw的转换运算符。 - __host__ __device__ __nv_bfloat162 & __nv_bfloat162::operator=(const __nv_bfloat162 &src)
-
复制赋值运算符。
- __host__ __device__ __nv_bfloat162 & __nv_bfloat162::operator=(const __nv_bfloat162_raw &h2r)
-
从
__nv_bfloat162_raw的赋值运算符。 - __host__ __device__ __nv_bfloat162 & __nv_bfloat162::operator=(__nv_bfloat162 &&src)
-
移动赋值运算符,适用于
C++11及后续版本。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(const double f)
-
使用默认的舍入到最近偶数模式,从
double输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(const float f)
-
使用默认的舍入到最近偶数模式,从
float输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(long long val)
-
使用默认的舍入到最近偶数模式,从
longlong输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(unsigned short val)
-
使用默认的舍入到最近偶数模式,从
unsignedshort整型输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(unsigned int val)
-
使用默认的舍入到最近偶数模式,从
unsignedint输入构造__nv_bfloat16。 - __nv_bfloat16::__nv_bfloat16()=default
-
默认构造函数。
- __host__ __device__ __nv_bfloat16::__nv_bfloat16(const __half f)
-
使用默认的舍入到最近偶数模式,从
__half输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(short val)
-
使用默认的舍入到最近偶数模式,从
short整型输入构造__nv_bfloat16。 - __host__ __device__ constexpr __nv_bfloat16::__nv_bfloat16(const __nv_bfloat16_raw &hr)
-
从
__nv_bfloat16_raw构造。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(unsigned long long val)
-
使用默认的舍入到最近偶数舍入模式,从
unsignedlonglong输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(int val)
-
使用默认的舍入到最近偶数模式,从
int输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(const unsigned long val)
-
使用默认的舍入到最近偶数模式,从
unsignedlong输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::__nv_bfloat16(const long val)
-
使用默认的舍入到最近偶数模式,从
long输入构造__nv_bfloat16。 - __host__ __device__ __nv_bfloat16::operator __nv_bfloat16_raw() const
-
类型转换为
__nv_bfloat16_raw运算符。 - __host__ __device__ __nv_bfloat16::operator __nv_bfloat16_raw() const volatile
-
将类型转换为
__nv_bfloat16_raw运算符,输入为volatile。 - __host__ __device__ constexpr __nv_bfloat16::operator bool() const
-
转换为
bool数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator char() const
-
转换为实现定义的
char数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator float() const
-
类型转换为
float操作符。 - __host__ __device__ __nv_bfloat16::operator int() const
-
转换为
int数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator long() const
-
转换为
long数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator long long() const
-
转换为
longlong数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator short() const
-
转换为
short数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator signed char() const
-
转换为
signedchar数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator unsigned char() const
-
转换为
unsignedchar数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator unsigned int() const
-
转换为
unsignedint数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator unsigned long() const
-
转换为
unsignedlong数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator unsigned long long() const
-
转换为
unsignedlonglong数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16::operator unsigned short() const
-
转换为
unsignedshort数据类型的转换运算符。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(const __nv_bfloat16_raw &hr)
-
来自
__nv_bfloat16_raw的赋值运算符。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(unsigned int val)
-
从
unsignedint赋值操作符进行类型转换,使用默认的向最近偶数舍入模式。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(int val)
-
从
int类型转换的赋值运算符,使用默认的向最近偶数舍入模式。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(long long val)
-
从
longlong赋值运算符进行类型转换,使用默认的向最近偶数舍入模式。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(unsigned long long val)
-
从
unsignedlonglong类型转换的赋值运算符,使用默认的向最近偶数舍入模式。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(unsigned short val)
-
从
unsignedshort类型转换的赋值运算符,使用默认的向最近偶数舍入模式。 - __host__ __device__ volatile __nv_bfloat16 & __nv_bfloat16::operator=(const __nv_bfloat16_raw &hr) volatile
-
从
__nv_bfloat16_raw到volatile__nv_bfloat16的赋值运算符。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(const double f)
-
使用默认的舍入到最近偶数模式,将
double输入类型转换为__nv_bfloat16的赋值运算符。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(const float f)
-
使用默认的舍入到最近偶数模式,将
float输入类型转换为__nv_bfloat16的赋值运算符。 - __host__ __device__ volatile __nv_bfloat16 & __nv_bfloat16::operator=(const volatile __nv_bfloat16_raw &hr) volatile
-
从
volatile__nv_bfloat16_raw到volatile__nv_bfloat16的赋值运算符。 - __host__ __device__ __nv_bfloat16 & __nv_bfloat16::operator=(short val)
-
从
short类型转换的赋值运算符,使用默认的向最近偶数舍入模式。 - __device__ __nv_bfloat162 __shfl_down_sync(const unsigned int mask, const __nv_bfloat162 var, const unsigned int delta, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat16 __shfl_down_sync(const unsigned int mask, const __nv_bfloat16 var, const unsigned int delta, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat162 __shfl_sync(const unsigned int mask, const __nv_bfloat162 var, const int srcLane, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat16 __shfl_sync(const unsigned int mask, const __nv_bfloat16 var, const int srcLane, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat16 __shfl_up_sync(const unsigned int mask, const __nv_bfloat16 var, const unsigned int delta, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat162 __shfl_up_sync(const unsigned int mask, const __nv_bfloat162 var, const unsigned int delta, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat16 __shfl_xor_sync(const unsigned int mask, const __nv_bfloat16 var, const int laneMask, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat162 __shfl_xor_sync(const unsigned int mask, const __nv_bfloat162 var, const int laneMask, const int width=warpSize)
-
在线程束内的线程之间交换变量。
- __device__ __nv_bfloat16 __short2bfloat16_rd(const short int i)
-
将有符号短整型转换为nv_bfloat16,采用向下舍入模式。
- __host__ __device__ __nv_bfloat16 __short2bfloat16_rn(const short int i)
-
将有符号短整数转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __short2bfloat16_ru(const short int i)
-
将有符号短整数转换为采用向上舍入模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __short2bfloat16_rz(const short int i)
-
将有符号短整数转换为采用向零舍入模式的nv_bfloat16格式。
- __host__ __device__ __nv_bfloat16 __short_as_bfloat16(const short int i)
-
将带符号短整型中的位重新解释为
nv_bfloat16。 - __device__ void __stcg(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.cg存储指令。 - __device__ void __stcg(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.cg存储指令。 - __device__ void __stcs(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.cs存储指令。 - __device__ void __stcs(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.cs存储指令。 - __device__ void __stwb(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.wb存储指令。 - __device__ void __stwb(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.wb存储指令。 - __device__ void __stwt(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.wt存储指令。 - __device__ void __stwt(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.wt存储指令。 - __device__ __nv_bfloat16 __uint2bfloat16_rd(const unsigned int i)
-
将一个无符号整数转换为nv_bfloat16,采用向下舍入模式。
- __host__ __device__ __nv_bfloat16 __uint2bfloat16_rn(const unsigned int i)
-
将一个无符号整数转换为采用四舍五入到最近偶数的nv_bfloat16格式。
- __device__ __nv_bfloat16 __uint2bfloat16_ru(const unsigned int i)
-
将无符号整数转换为采用向上舍入模式的nv_bfloat16。
- __device__ __nv_bfloat16 __uint2bfloat16_rz(const unsigned int i)
-
将一个无符号整数转换为采用向零舍入模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ull2bfloat16_rd(const unsigned long long int i)
-
将一个无符号64位整数转换为nv_bfloat16格式,采用向下舍入模式。
- __host__ __device__ __nv_bfloat16 __ull2bfloat16_rn(const unsigned long long int i)
-
将一个无符号64位整数转换为采用四舍五入到最近偶数的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ull2bfloat16_ru(const unsigned long long int i)
-
将一个无符号64位整数转换为采用向上舍入模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ull2bfloat16_rz(const unsigned long long int i)
-
将一个无符号64位整数转换为采用向零舍入模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ushort2bfloat16_rd(const unsigned short int i)
-
将一个无符号短整型转换为nv_bfloat16,采用向下舍入模式。
- __host__ __device__ __nv_bfloat16 __ushort2bfloat16_rn(const unsigned short int i)
-
将一个无符号短整型转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
- __device__ __nv_bfloat16 __ushort2bfloat16_ru(const unsigned short int i)
-
将一个无符号短整型转换为采用向上舍入模式的nv_bfloat16。
- __device__ __nv_bfloat16 __ushort2bfloat16_rz(const unsigned short int i)
-
将一个无符号短整型转换为采用向零舍入模式的nv_bfloat16格式。
- __host__ __device__ __nv_bfloat16 __ushort_as_bfloat16(const unsigned short int i)
-
将无符号短整数的位重新解释为
nv_bfloat16。 - __host__ __device__ __nv_bfloat162 make_bfloat162(const __nv_bfloat16 x, const __nv_bfloat16 y)
-
向量函数,将两个
nv_bfloat16数值合并为一个nv_bfloat162数值。
5.5.1. 函数
-
__host__ __device__ float2 __bfloat1622float2(const __nv_bfloat162 a)
-
将
nv_bfloat162的两半部分转换为float2并返回结果。将
nv_bfloat162输入a的两半部分转换为浮点数,并将结果作为float2打包值返回。另请参阅
__bfloat162float(__nv_bfloat16) 更多详情请参阅。
- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
float2
a转换为 float2 类型。
-
__host__ __device__ __nv_bfloat162 __bfloat162bfloat162(const __nv_bfloat16 a)
-
返回一个
nv_bfloat162,其两个半部分都等于输入值。返回一个
nv_bfloat162数值,其高低两部分均等于输入的anv_bfloat16数值。- Parameters
-
a – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
nv_bfloat162
向量,其两半均等于输入
a。
-
__host__ __device__ signed char __bfloat162char_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号字符,采用向零舍入模式。
将nv_bfloat16浮点值
h以向零舍入模式转换为有符号字符。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
有符号字符
h使用向零舍入模式转换为有符号字符。__bfloat162char_rz \( (\pm 0)\) 返回0。
__bfloat162char_rz \( (x), x > 127\) 返回 SCHAR_MAX =
0x7F。__bfloat162char_rz \( (x), x < -128\) 返回 SCHAR_MIN =
0x80。__bfloat162char_rz(NaN) 返回 0。
-
__host__ __device__ float __bfloat162float(const __nv_bfloat16 a)
-
将
nv_bfloat16数字转换为浮点数。将nv_bfloat16数字
a转换为float类型。- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
浮点数
a转换为浮点数。__bfloat162float \( (\pm 0)\) 返回 \( \pm 0 \)。
__bfloat162float \( (\pm \infty)\) 返回 \( \pm \infty \)。
__bfloat162float(NaN) 返回 NaN。
-
__device__ int __bfloat162int_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为向下取整模式的有符号整数。
将nv_bfloat16浮点值
h转换为舍入模式下的有符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
int
h使用向下取整模式转换为有符号整数。__bfloat162int_rd \( (\pm 0)\) 返回0。
__bfloat162int_rd \( (x), x > INT_MAX\) 当x大于INT_MAX时返回INT_MAX =
0x7FFFFFFF。__bfloat162int_rd \( (x), x < INT_MIN\) 返回 INT_MIN =
0x80000000。__bfloat162int_rd(NaN) 返回 0.*
-
__device__ int __bfloat162int_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号整数,采用四舍五入到最接近的偶数模式。
将nv_bfloat16浮点值
h转换为采用四舍五入到最近偶数模式的带符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
int
h使用四舍五入到最近偶数模式转换为有符号整数。__bfloat162int_rn \( (\pm 0)\) 返回0。
__bfloat162int_rn \( (x), x > INT_MAX\) 当x大于INT_MAX时返回INT_MAX =
0x7FFFFFFF。__bfloat162int_rn \( (x), x < INT_MIN\) 当x小于INT_MIN时返回INT_MIN =
0x80000000。__bfloat162int_rn(NaN) 返回 0。
-
__device__ int __bfloat162int_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为向上取整模式下的有符号整数。
将nv_bfloat16浮点值
h转换为向上取整模式的有符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
int
h使用向上取整模式转换为有符号整数。__bfloat162int_ru \( (\pm 0)\) 返回0。
__bfloat162int_ru \( (x), x > INT_MAX\) 当x大于INT_MAX时返回INT_MAX =
0x7FFFFFFF。__bfloat162int_ru \( (x), x < INT_MIN\) 返回 INT_MIN =
0x80000000。__bfloat162int_ru(NaN) 返回 0。
-
__host__ __device__ int __bfloat162int_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号整数,采用向零舍入模式。
将nv_bfloat16浮点值
h以向零舍入模式转换为有符号整数。NaN输入会被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
int
h使用向零取整模式转换为有符号整数。__bfloat162int_rz \( (\pm 0)\) 返回 0。
__bfloat162int_rz \( (x), x > INT_MAX\) 当x大于INT_MAX时返回INT_MAX =
0x7FFFFFFF。__bfloat162int_rz \( (x), x < INT_MIN\) 返回 INT_MIN =
0x80000000。__bfloat162int_rz(NaN) 返回 0。
-
__device__ long long int __bfloat162ll_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号64位整数,采用向下舍入模式。
将nv_bfloat16浮点值
h转换为向下舍入模式的有符号64位整数。NaN输入将返回十六进制值为0x8000000000000000的long long int类型。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
长整型
h转换为有符号64位整数。
-
__device__ long long int __bfloat162ll_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号64位整数,采用四舍五入到最近的偶数模式。
将nv_bfloat16浮点数值
h转换为采用四舍五入到最近偶数模式的有符号64位整数。NaN输入将返回十六进制值为0x8000000000000000的long long int类型。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
长整型
h转换为有符号64位整数。
-
__device__ long long int __bfloat162ll_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为带符号的64位整数(向上舍入模式)。
将nv_bfloat16浮点值
h转换为有符号64位整数(向上舍入模式)。NaN输入将返回十六进制值为0x8000000000000000的long long int类型。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
长整型
h转换为有符号64位整数。
-
__host__ __device__ long long int __bfloat162ll_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号64位整数,采用向零舍入模式。
将nv_bfloat16浮点值
h转换为有符号64位整数(采用向零舍入模式)。NaN输入将返回十六进制值为0x8000000000000000的long long int类型。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
长整型
h转换为有符号64位整数。
-
__device__ short int __bfloat162short_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整型,采用向下舍入模式。
将nv_bfloat16浮点值
h转换为舍入模式下的有符号短整型。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
短整型
h使用向下取整模式转换为有符号短整型。__bfloat162short_rd \( (\pm 0)\) 返回0。
__bfloat162short_rd \( (x), x > 32767\) 返回 SHRT_MAX =
0x7FFF。__bfloat162short_rd \( (x), x < -32768\) 返回 SHRT_MIN =
0x8000。__bfloat162short_rd(NaN) 返回 0。
-
__device__ short int __bfloat162short_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整数,采用四舍五入到最接近的偶数模式。
将nv_bfloat16浮点值
h转换为采用四舍五入到最近偶数模式的有符号短整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
短整型
h使用四舍五入到最近偶数模式转换为有符号短整型。__bfloat162short_rn \( (\pm 0)\) 返回0。
__bfloat162short_rn \( (x), x > 32767\) 返回 SHRT_MAX =
0x7FFF。__bfloat162short_rn \( (x), x < -32768\) 返回 SHRT_MIN =
0x8000。__bfloat162short_rn(NaN) 返回 0。
-
__device__ short int __bfloat162short_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为带符号的短整型,采用向上取整模式。
将nv_bfloat16浮点值
h转换为向上取整模式的有符号短整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
短整型
h使用向上取整模式转换为有符号短整型。__bfloat162short_ru \( (\pm 0)\) 返回0。
__bfloat162short_ru \( (x), x > 32767\) 返回 SHRT_MAX =
0x7FFF。__bfloat162short_ru \( (x), x < -32768\) 返回 SHRT_MIN =
0x8000。__bfloat162short_ru(NaN) 返回 0。
-
__host__ __device__ short int __bfloat162short_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为有符号短整型,采用向零舍入模式。
将nv_bfloat16浮点值
h转换为有符号短整型,采用向零舍入模式。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
短整型
h使用向零取整模式转换为有符号短整型。__bfloat162short_rz \( (\pm 0)\) 返回0。
__bfloat162short_rz \( (x), x > 32767\) 返回 SHRT_MAX =
0x7FFF。__bfloat162short_rz \( (x), x < -32768\) 返回 SHRT_MIN =
0x8000。__bfloat162short_rz(NaN) 返回 0。
-
__host__ __device__ unsigned char __bfloat162uchar_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号字符,采用向零舍入模式。
将nv_bfloat16浮点值
h以向零舍入模式转换为无符号字符。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号字符
h使用向零舍入模式转换为无符号字符。__bfloat162uchar_rz \( (\pm 0)\) 返回0。
__bfloat162uchar_rz \( (x), x > 255\) 返回 UCHAR_MAX =
0xFF。__bfloat162uchar_rz \( (x), x < 0.0\) 当x小于0时返回0。
__bfloat162uchar_rz(NaN) 返回 0。
-
__device__ unsigned int __bfloat162uint_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用向下舍入模式。
将nv_bfloat16浮点值
h转换为向下取整模式的无符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号整型
h转换为无符号整数。
-
__device__ unsigned int __bfloat162uint_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用四舍五入到最接近的偶数模式。
将nv_bfloat16浮点值
h转换为采用四舍五入到最近偶数模式的无符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号整型
h转换为无符号整数。
-
__device__ unsigned int __bfloat162uint_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用向上取整模式。
将nv_bfloat16浮点值
h转换为向上取整模式的无符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号整型
h转换为无符号整数。
-
__host__ __device__ unsigned int __bfloat162uint_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号整数,采用向零舍入模式。
将nv_bfloat16浮点值
h以向零舍入模式转换为无符号整数。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号整型
h转换为无符号整数。
-
__device__ unsigned long long int __bfloat162ull_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用向下舍入模式。
将nv_bfloat16浮点值
h转换为无符号64位整数(向下舍入模式)。NaN输入返回0x8000000000000000。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号长整型
h转换为无符号64位整数。
-
__device__ unsigned long long int __bfloat162ull_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用四舍五入到最接近的偶数模式。
将nv_bfloat16浮点值
h转换为无符号64位整数,采用四舍五入到最近的偶数模式。NaN输入返回0x8000000000000000。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号长整型
h转换为无符号64位整数。
-
__device__ unsigned long long int __bfloat162ull_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用向上取整模式。
将nv_bfloat16浮点值
h转换为无符号64位整数(向上舍入模式)。NaN输入返回0x8000000000000000。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号长整型
h转换为无符号64位整数。
-
__host__ __device__ unsigned long long int __bfloat162ull_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号64位整数,采用向零舍入模式。
将nv_bfloat16浮点值
h转换为无符号64位整数(采用向零舍入模式)。NaN输入返回0x8000000000000000。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号长整型
h转换为无符号64位整数。
-
__device__ unsigned short int __bfloat162ushort_rd(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整型,采用向下舍入模式。
将nv_bfloat16浮点值
h转换为向下舍入模式的无符号短整型。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号短整型
h转换为无符号短整型。
-
__device__ unsigned short int __bfloat162ushort_rn(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整数,采用四舍五入到最接近的偶数模式。
将nv_bfloat16浮点值
h转换为无符号短整型,采用四舍五入到最接近偶数的模式。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号短整型
h转换为无符号短整型。
-
__device__ unsigned short int __bfloat162ushort_ru(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整数,采用向上取整模式。
将nv_bfloat16浮点值
h转换为向上取整模式的无符号短整型。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号短整型
h转换为无符号短整型。
-
__host__ __device__ unsigned short int __bfloat162ushort_rz(const __nv_bfloat16 h)
-
将nv_bfloat16转换为无符号短整型,采用向零舍入模式。
将nv_bfloat16浮点值
h以向零舍入模式转换为无符号短整型。NaN输入将被转换为0。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号短整型
h转换为无符号短整型。
-
__host__ __device__ short int __bfloat16_as_short(const __nv_bfloat16 h)
-
将
nv_bfloat16中的位重新解释为有符号短整数。将nv_bfloat16浮点数
h中的位重新解释为有符号短整数。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
短整型
重新解释后的值。
-
__host__ __device__ unsigned short int __bfloat16_as_ushort(const __nv_bfloat16 h)
-
将
nv_bfloat16中的位重新解释为无符号短整型。将nv_bfloat16浮点数
h中的位重新解释为无符号短整型数字。- Parameters
-
h – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
无符号短整型
重新解释后的值。
-
__host__ __device__ __nv_bfloat16 __double2bfloat16(const double a)
-
将双精度数字转换为nv_bfloat16精度(采用四舍五入到最接近偶数模式),并返回带有转换值的
nv_bfloat16。将双精度数字
a转换为 nv_bfloat16 精度,采用四舍五入到最接近偶数模式。- Parameters
-
a – [输入] - double类型。仅用于读取。
- Returns
-
nv_bfloat16
a转换为nv_bfloat16时采用四舍五入到最近偶数模式。__double2bfloat16 \( (\pm 0)\) 返回 \( \pm 0 \)。
__double2bfloat16 \( (\pm \infty)\) 返回 \( \pm \infty \)。
__double2bfloat16(NaN) 返回 NaN。
-
__host__ __device__ __nv_bfloat162 __float22bfloat162_rn(const float2 a)
-
将float2数值的两个分量转换为nv_bfloat16精度(采用四舍五入到最接近偶数模式),并返回包含转换后值的
nv_bfloat162。将float2的两个分量转换为nv_bfloat16精度(采用四舍五入到最近的偶数模式),并将结果组合成一个
nv_bfloat162数值。返回值的低16位对应a.x,高16位对应a.y。另请参阅
__float2bfloat16_rn(float) 更多详情请参阅。
- Parameters
-
a – [输入] - float2类型。仅用于读取。
- Returns
-
nv_bfloat162
nv_bfloat162,其对应的半精度部分等于转换后的float2组件。
-
__host__ __device__ __nv_bfloat16 __float2bfloat16(const float a)
-
将浮点数转换为nv_bfloat16精度(采用四舍五入到最近的偶数模式),并返回带有转换值的
nv_bfloat16。将浮点数
a转换为 nv_bfloat16 精度,采用四舍五入到最接近的偶数模式。另请参阅
__float2bfloat16_rn(float) 更多详情请参阅。
- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat16
a使用四舍五入到最近的偶数模式转换为nv_bfloat16格式。
-
__host__ __device__ __nv_bfloat162 __float2bfloat162_rn(const float a)
-
将输入转换为nv_bfloat16精度(采用四舍五入到最接近偶数模式),并使用转换后的值填充
nv_bfloat162的两个半部分。将输入
a转换为nv_bfloat16精度(采用四舍五入到最近偶数模式),并将转换后的值填充到nv_bfloat162的两个半部分中。另请参阅
__float2bfloat16_rn(float) 更多详情请参阅。
- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat162
一个
nv_bfloat162值,其高低两部分都等于转换后的nv_bfloat16精度数值。
-
__host__ __device__ __nv_bfloat16 __float2bfloat16_rd(const float a)
-
将浮点数转换为nv_bfloat16精度(采用向下舍入模式),并返回带有转换值的
nv_bfloat16。将浮点数
a以向下舍入模式转换为 nv_bfloat16 精度。- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat16
a使用向下舍入模式转换为 nv_bfloat16 格式。__float2bfloat16_rd \( (\pm 0)\) 返回 \( \pm 0 \)。
__float2bfloat16_rd \( (\pm \infty)\) 返回 \( \pm \infty \)。
__float2bfloat16_rd(NaN) 返回 NaN。
-
__host__ __device__ __nv_bfloat16 __float2bfloat16_rn(const float a)
-
将浮点数转换为nv_bfloat16精度(采用四舍五入到最近的偶数模式),并返回带有转换值的
nv_bfloat16。将浮点数
a转换为 nv_bfloat16 精度,采用四舍五入到最接近偶数的模式。- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat16
a使用四舍五入到最近偶数模式转换为nv_bfloat16格式。__float2bfloat16_rn \( (\pm 0)\) 返回 \( \pm 0 \)。
__float2bfloat16_rn \( (\pm \infty)\) 返回 \( \pm \infty \)。
__float2bfloat16_rn(NaN) 返回 NaN。
-
__host__ __device__ __nv_bfloat16 __float2bfloat16_ru(const float a)
-
将浮点数转换为nv_bfloat16精度(向上舍入模式),并返回带有转换值的
nv_bfloat16。将浮点数
a转换为 nv_bfloat16 精度,采用向上取整模式。- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat16
a使用向上舍入模式转换为nv_bfloat16。__float2bfloat16_ru \( (\pm 0)\) 返回 \( \pm 0 \)。
__float2bfloat16_ru \( (\pm \infty)\) 返回 \( \pm \infty \)。
__float2bfloat16_ru(NaN) 返回 NaN。
-
__host__ __device__ __nv_bfloat16 __float2bfloat16_rz(const float a)
-
将浮点数转换为nv_bfloat16精度(采用向零舍入模式),并返回带有转换后值的
nv_bfloat16。将浮点数
a转换为 nv_bfloat16 精度,采用向零舍入模式。- Parameters
-
a – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat16
a使用向零舍入模式转换为nv_bfloat16格式。__float2bfloat16_rz \( (\pm 0)\) 返回 \( \pm 0 \)。
__float2bfloat16_rz \( (\pm \infty)\) 返回 \( \pm \infty \)。
__float2bfloat16_rz(NaN) 返回 NaN。
-
__host__ __device__ __nv_bfloat162 __floats2bfloat162_rn(const float a, const float b)
-
将两个输入的浮点数转换为nv_bfloat16精度(采用四舍五入到最接近的偶数模式),并返回包含转换后值的
nv_bfloat162。将两个输入的浮点数转换为nv_bfloat16精度(采用四舍五入到最接近的偶数模式),并将结果组合成一个
nv_bfloat162数值。返回值的低16位对应输入a,高16位对应输入b。另请参阅
__float2bfloat16_rn(float) 更多详情请参阅。
- Parameters
-
a – [输入] - 浮点数。仅用于读取。
b – [输入] - 浮点数。仅用于读取。
- Returns
-
nv_bfloat162
对应的半精度值等于转换后输入浮点数的
nv_bfloat162值。
-
__host__ __device__ __nv_bfloat162 __halves2bfloat162(const __nv_bfloat16 a, const __nv_bfloat16 b)
-
将两个
nv_bfloat16数字合并为一个nv_bfloat162数字。将两个输入的
nv_bfloat16数值a和b合并为一个nv_bfloat162数值。输入值a存储在返回值的低16位,输入值b存储在高16位。- Parameters
-
a – [输入] - nv_bfloat16。仅用于读取。
b – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
nv_bfloat162
包含一个nv_bfloat16等于
a,另一个等于b的nv_bfloat162。
-
__host__ __device__ __nv_bfloat16 __high2bfloat16(const __nv_bfloat162 a)
-
返回
nv_bfloat162输入的高16位。返回
nv_bfloat162输入a的高16位。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat16
输入的高16位。
-
__host__ __device__ __nv_bfloat162 __high2bfloat162(const __nv_bfloat162 a)
-
从
nv_bfloat162输入中提取高16位。从
nv_bfloat162输入a中提取高16位,并返回一个新的nv_bfloat162数值,其高低半部分均为所提取的位。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
nv_bfloat162的两个半部分均等于输入的高16位。
-
__host__ __device__ float __high2float(const __nv_bfloat162 a)
-
将
nv_bfloat162的高16位转换为float并返回结果。将
nv_bfloat162输入a的高16位转换为32位浮点数并返回结果。另请参阅
__bfloat162float(__nv_bfloat16) 更多详情请参阅。
- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
浮点数
a的高16位转换为浮点数。
-
__host__ __device__ __nv_bfloat162 __highs2bfloat162(const __nv_bfloat162 a, const __nv_bfloat162 b)
-
从两个
nv_bfloat162输入中分别提取高16位,并组合成一个nv_bfloat162数值。从两个
nv_bfloat162输入中分别提取高16位,并组合成一个nv_bfloat162数值。输入a的高16位存储在返回值的低16位中,输入b的高16位存储在返回值的高16位中。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
b – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
a和b的高16位。
-
__device__ __nv_bfloat16 __int2bfloat16_rd(const int i)
-
将有符号整数转换为nv_bfloat16,采用向下舍入模式。
将有符号整数值
i转换为采用向下舍入模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __int2bfloat16_rn(const int i)
-
将有符号整数转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
将有符号整数值
i转换为采用四舍五入到最近偶数模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __int2bfloat16_ru(const int i)
-
将有符号整数转换为采用向上舍入模式的nv_bfloat16格式。
将有符号整数值
i转换为采用向上舍入模式的 nv_bfloat16 浮点值。- Parameters
-
i – [输入] - 整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __int2bfloat16_rz(const int i)
-
将有符号整数转换为采用向零舍入模式的nv_bfloat16格式。
将有符号整数值
i转换为采用向零舍入模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat162 __ldca(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.ca加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ldca(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.ca加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ldcg(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.cg加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat162 __ldcg(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.cg加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat162 __ldcs(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.cs加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ldcs(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.cs加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ldcv(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.cv加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat162 __ldcv(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.cv加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat162 __ldg(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.nc加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ldg(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.nc加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat162 __ldlu(const __nv_bfloat162 *const ptr)
-
生成一条
ld.global.lu加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ldlu(const __nv_bfloat16 *const ptr)
-
生成一条
ld.global.lu加载指令。- Parameters
-
ptr – [输入] - 内存位置
- Returns
-
ptr所指向的值
-
__device__ __nv_bfloat16 __ll2bfloat16_rd(const long long int i)
-
将带符号的64位整数转换为nv_bfloat16格式,采用向下舍入模式。
将有符号64位整数值
i转换为采用向下舍入模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - long long int。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __ll2bfloat16_rn(const long long int i)
-
将有符号64位整数转换为nv_bfloat16格式,采用四舍五入到最近的偶数模式。
将有符号64位整数值
i转换为采用四舍五入到最近偶数模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - long long int。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ll2bfloat16_ru(const long long int i)
-
将带符号的64位整数转换为采用向上舍入模式的nv_bfloat16格式。
将有符号64位整数值
i转换为采用向上舍入模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - long long int。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ll2bfloat16_rz(const long long int i)
-
将有符号64位整数转换为采用向零舍入模式的nv_bfloat16格式。
将有符号64位整数值
i转换为采用向零舍入模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - long long int。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __low2bfloat16(const __nv_bfloat162 a)
-
返回
nv_bfloat162输入的低16位。返回
nv_bfloat162输入a的低16位。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat16
返回包含输入
a低16位的nv_bfloat16类型值。
-
__host__ __device__ __nv_bfloat162 __low2bfloat162(const __nv_bfloat162 a)
-
从
nv_bfloat162输入中提取低16位。从
nv_bfloat162输入a中提取低16位,并返回一个新的nv_bfloat162数值,其高低半部分均等于所提取的位。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
nv_bfloat162,其高低半部分均等于输入的低16位。
-
__host__ __device__ float __low2float(const __nv_bfloat162 a)
-
将
nv_bfloat162的低16位转换为float并返回结果。将
nv_bfloat162输入a的低16位转换为32位浮点数并返回结果。另请参阅
__bfloat162float(__nv_bfloat16) 更多详情请参阅。
- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
浮点数
a的低16位转换为浮点数。
-
__host__ __device__ __nv_bfloat162 __lowhigh2highlow(const __nv_bfloat162 a)
-
交换
nv_bfloat162输入的两半部分。交换
nv_bfloat162输入的两半部分,并返回一个交换后的新nv_bfloat162数值。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
a交换其两半部分。
-
__host__ __device__ __nv_bfloat162 __lows2bfloat162(const __nv_bfloat162 a, const __nv_bfloat162 b)
-
从两个
nv_bfloat162输入中各提取低16位,并组合成一个nv_bfloat162数值。从两个
nv_bfloat162输入中分别提取低16位,并组合成一个nv_bfloat162数值。输入a的低16位存储在返回值的低16位中,输入b的低16位存储在返回值的高16位中。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
b – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
a和b的低16位。
-
__device__ __nv_bfloat162 __shfl_down_sync(const unsigned int mask, const __nv_bfloat162 var, const unsigned int delta, const int width = warpSize)
-
在线程束内的线程之间交换变量。
从相对于调用者ID更高的线程复制数据。
通过将
delta添加到调用线程ID来计算源线程ID。返回结果线程ID持有的var值:这具有将var沿warp向下移动delta个线程的效果。如果width小于warpSize,则warp的每个子部分都作为一个独立实体运行,起始逻辑线程ID为0。与__shfl_up_sync()类似,源线程的ID号不会环绕width值,且上部的delta个线程将保持不变。线程只能从当前正在参与__shfl_*sync()命令的其他线程读取数据。如果目标线程处于非活动状态,则获取的值是未定义的。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat162。仅用于读取。
delta – [输入] - 无符号整型。仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的4字节字,作为nv_bfloat162。
-
__device__ __nv_bfloat16 __shfl_down_sync(const unsigned int mask, const __nv_bfloat16 var, const unsigned int delta, const int width = warpSize)
-
在线程束内的线程之间交换变量。
从相对于调用者ID更高的线程复制数据。
通过将
delta添加到调用线程ID来计算源线程ID。返回结果线程ID持有的var值:这具有将var沿warp向下移动delta个线程的效果。如果width小于warpSize,则warp的每个子部分都作为一个独立实体运行,起始逻辑线程ID为0。与__shfl_up_sync()类似,源线程的ID号不会环绕width值,且上部的delta个线程将保持不变。线程只能从当前正在参与__shfl_*sync()命令的其他线程读取数据。如果目标线程处于非活动状态,则获取的值是未定义的。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [in] - nv_bfloat16。仅用于读取。
delta – [输入] - 无符号整型。仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的2字节字,格式为nv_bfloat16。
-
__device__ __nv_bfloat162 __shfl_sync(const unsigned int mask, const __nv_bfloat162 var, const int srcLane, const int width = warpSize)
-
在线程束内的线程之间交换变量。
直接从索引线程复制。
返回由
srcLane指定的线程ID所持有的var值。如果width小于warpSize,则warp的每个子部分将作为一个独立实体运行,其起始逻辑线程ID为0。如果srcLane超出范围[0:width-1],则返回的值对应于srcLane对width取模后所持有的var值(即在同一个子部分内)。width的值必须是2的幂;如果width不是2的幂,或者大于warpSize,则结果未定义。线程只能从当前正在参与__shfl_*sync()命令的其他线程读取数据。如果目标线程处于非活动状态,则获取的值未定义。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat162。仅用于读取。
srcLane – [in] - int. 仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的4字节字,格式为nv_bfloat162。
-
__device__ __nv_bfloat16 __shfl_sync(const unsigned int mask, const __nv_bfloat16 var, const int srcLane, const int width = warpSize)
-
在线程束内的线程之间交换变量。
直接从索引线程复制。
返回由
srcLane指定的线程ID所持有的var值。如果width小于warpSize,则warp的每个子部分将作为一个独立实体运行,其起始逻辑线程ID为0。如果srcLane超出范围[0:width-1],则返回的值对应于srcLane对width取模后所持有的var值(即在同一个子部分内)。width的值必须是2的幂;如果width不是2的幂,或者大于warpSize,则结果未定义。线程只能从当前正在参与__shfl_*sync()命令的其他线程读取数据。如果目标线程处于非活动状态,则获取的值未定义。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat16。仅用于读取。
srcLane – [in] - int. 仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的2字节字,格式为nv_bfloat16。
-
__device__ __nv_bfloat16 __shfl_up_sync(const unsigned int mask, const __nv_bfloat16 var, const unsigned int delta, const int width = warpSize)
-
在线程束内的线程之间交换变量。
从相对于调用者ID较低的线程复制数据。
通过从调用者的线程通道ID中减去
delta来计算源线程ID。返回由结果线程通道ID持有的var值:实际上,var会在线程束中向上移动delta个线程。如果width小于warpSize,则线程束的每个子部分将作为一个独立的实体运行,其起始逻辑线程ID为0。源线程索引不会环绕width的值,因此实际上较低的delta个线程将保持不变。width的值必须是2的幂;如果width不是2的幂,或者大于warpSize,则结果未定义。线程只能从另一个正在参与__shfl_*sync()命令的线程中读取数据。如果目标线程处于非活动状态,则检索到的值未定义。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat16。仅用于读取。
delta – [输入] - 无符号整型。仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的2字节字,格式为nv_bfloat16。
-
__device__ __nv_bfloat162 __shfl_up_sync(const unsigned int mask, const __nv_bfloat162 var, const unsigned int delta, const int width = warpSize)
-
在线程束内的线程之间交换变量。
从相对于调用者ID较低的线程复制数据。
通过从调用者的线程通道ID中减去
delta来计算源线程ID。返回由结果线程通道ID持有的var值:实际上,var会在线程束中向上移动delta个线程。如果width小于warpSize,则线程束的每个子部分将作为一个独立的实体运行,其起始逻辑线程ID为0。源线程索引不会环绕width的值,因此实际上较低的delta个线程将保持不变。width的值必须是2的幂;如果width不是2的幂,或者大于warpSize,则结果未定义。线程只能从另一个正在参与__shfl_*sync()命令的线程中读取数据。如果目标线程处于非活动状态,则检索到的值未定义。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat162。仅用于读取。
delta – [输入] - 无符号整型。仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的4字节字,格式为nv_bfloat162。
-
__device__ __nv_bfloat16 __shfl_xor_sync(const unsigned int mask, const __nv_bfloat16 var, const int laneMask, const int width = warpSize)
-
在线程束内的线程之间交换变量。
基于自身线程ID的按位异或操作从线程复制数据。
通过执行调用线程ID与
laneMask:的按位异或运算来计算源线程ID,并返回结果线程ID所持有的var值。如果width小于warpSize,则每组连续的width个线程可以访问前面线程组中的元素,但如果它们尝试访问后面线程组中的元素,则会返回它们自己的var值。此模式实现了类似树形归约和广播中使用的蝶形寻址模式。线程只能从正在参与__shfl_*sync()命令的其他线程读取数据。如果目标线程处于非活动状态,则获取的值是未定义的。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat16。仅用于读取。
laneMask – [输入] - int. 仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的2字节字,格式为nv_bfloat16。
-
__device__ __nv_bfloat162 __shfl_xor_sync(const unsigned int mask, const __nv_bfloat162 var, const int laneMask, const int width = warpSize)
-
在线程束内的线程之间交换变量。
基于自身线程ID的按位异或操作从线程复制数据。
通过执行调用线程ID与
laneMask:的按位异或运算来计算源线程ID,并返回结果线程ID所持有的var值。如果width小于warpSize,则每组连续的width个线程可以访问前面线程组中的元素,但如果它们尝试访问后面线程组中的元素,则会返回它们自己的var值。此模式实现了类似树形归约和广播中使用的蝶形寻址模式。线程只能从正在参与__shfl_*sync()命令的其他线程读取数据。如果目标线程处于非活动状态,则获取的值是未定义的。注意
有关此函数的更多详细信息,请参阅CUDA C++编程指南中的Warp Shuffle Functions章节。
- Parameters
-
-
mask – [输入] - 无符号整型。仅用于读取。
表示参与调用的线程。
必须为每个参与的线程设置一个比特位,表示线程的通道ID,以确保在执行硬件内部指令前它们能正确收敛。
每个调用线程必须在
mask中拥有自己的位设置,并且mask中指定的所有未退出线程必须使用相同的mask执行相同的内在函数,否则结果将是未定义的。
var – [输入] - nv_bfloat162。仅用于读取。
laneMask – [输入] - int. 仅用于读取。
width – [in] - int. 仅用于读取。
-
- Returns
-
从源线程ID返回由
var引用的4字节字,格式为nv_bfloat162。
-
__device__ __nv_bfloat16 __short2bfloat16_rd(const short int i)
-
将有符号短整数转换为nv_bfloat16,采用向下舍入模式。
将有符号短整数值
i转换为采用向下舍入模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __short2bfloat16_rn(const short int i)
-
将有符号短整数转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
将有符号短整数值
i转换为采用四舍五入到最近偶数模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __short2bfloat16_ru(const short int i)
-
将有符号短整数转换为采用向上舍入模式的nv_bfloat16格式。
将有符号短整数值
i转换为采用向上舍入模式的 nv_bfloat16 浮点值。- Parameters
-
i – [输入] - 短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __short2bfloat16_rz(const short int i)
-
将有符号短整型转换为采用向零舍入模式的nv_bfloat16。
将有符号短整数值
i转换为采用向零舍入模式的nv_bfloat16浮点数值。- Parameters
-
i – [输入] - 短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __short_as_bfloat16(const short int i)
-
将带符号短整型中的位重新解释为
nv_bfloat16格式。将有符号短整数
i的位重新解释为nv_bfloat16浮点数。- Parameters
-
i – [输入] - 短整型。仅用于读取。
- Returns
-
nv_bfloat16
重新解释后的值。
-
__device__ void __stcg(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.cg存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stcg(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.cg存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stcs(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.cs存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stcs(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.cs存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stwb(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.wb存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stwb(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.wb存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stwt(__nv_bfloat162 *const ptr, const __nv_bfloat162 value)
-
生成一条
st.global.wt存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ void __stwt(__nv_bfloat16 *const ptr, const __nv_bfloat16 value)
-
生成一条
st.global.wt存储指令。- Parameters
-
ptr – [out] - 内存位置
value – [in] - 要存储的值
-
__device__ __nv_bfloat16 __uint2bfloat16_rd(const unsigned int i)
-
将一个无符号整数转换为nv_bfloat16格式,采用向下舍入模式。
将无符号整数值
i转换为采用向下舍入模式的 nv_bfloat16 浮点值。- Parameters
-
i – [输入] - 无符号整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __uint2bfloat16_rn(const unsigned int i)
-
将一个无符号整数转换为采用四舍五入到最近偶数的nv_bfloat16格式。
将无符号整数值
i转换为采用四舍五入到最近偶数的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 无符号整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __uint2bfloat16_ru(const unsigned int i)
-
将无符号整数转换为采用向上舍入模式的nv_bfloat16。
将无符号整数值
i转换为采用向上舍入模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 无符号整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __uint2bfloat16_rz(const unsigned int i)
-
将一个无符号整数转换为采用向零舍入模式的nv_bfloat16格式。
将无符号整数值
i转换为采用向零舍入模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 无符号整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ull2bfloat16_rd(const unsigned long long int i)
-
将一个无符号64位整数转换为nv_bfloat16格式,采用向下舍入模式。
将无符号64位整数值
i转换为向下舍入模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - 无符号长整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __ull2bfloat16_rn(const unsigned long long int i)
-
将一个无符号64位整数转换为采用四舍五入到最近偶数模式的nv_bfloat16格式。
将无符号64位整数值
i转换为采用四舍五入到最近偶数的nv_bfloat16浮点值。- Parameters
-
i – [输入] - 无符号长整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ull2bfloat16_ru(const unsigned long long int i)
-
将一个无符号64位整数转换为采用向上舍入模式的nv_bfloat16格式。
将无符号64位整数值
i转换为采用向上舍入模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - 无符号长整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ull2bfloat16_rz(const unsigned long long int i)
-
将一个无符号64位整数转换为采用向零舍入模式的nv_bfloat16格式。
将无符号64位整数值
i转换为采用向零舍入模式的nv_bfloat16浮点值。- Parameters
-
i – [输入] - 无符号长整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ushort2bfloat16_rd(const unsigned short int i)
-
将一个无符号短整型转换为nv_bfloat16,采用向下舍入模式。
将无符号短整数值
i转换为向下舍入模式的 nv_bfloat16 浮点值。- Parameters
-
i – [输入] - 无符号短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __ushort2bfloat16_rn(const unsigned short int i)
-
将一个无符号短整型数转换为采用四舍五入到最近偶数的nv_bfloat16格式。
将无符号短整数值
i转换为采用四舍五入到最近偶数模式的 nv_bfloat16 浮点值。- Parameters
-
i – [输入] - 无符号短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ushort2bfloat16_ru(const unsigned short int i)
-
将一个无符号短整型转换为采用向上舍入模式的nv_bfloat16。
将无符号短整数值
i转换为采用向上舍入模式的 nv_bfloat16 浮点值。- Parameters
-
i – [输入] - 无符号短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__device__ __nv_bfloat16 __ushort2bfloat16_rz(const unsigned short int i)
-
将一个无符号短整型转换为采用向零舍入模式的nv_bfloat16格式。
将无符号短整数值
i转换为采用向零舍入模式的 nv_bfloat16 浮点数值。- Parameters
-
i – [输入] - 无符号短整型。仅用于读取。
- Returns
-
nv_bfloat16
i转换为 nv_bfloat16 格式。
-
__host__ __device__ __nv_bfloat16 __ushort_as_bfloat16(const unsigned short int i)
-
将无符号短整数的位重新解释为
nv_bfloat16。将无符号短整数
i中的位重新解释为nv_bfloat16浮点数。- Parameters
-
i – [输入] - 无符号短整型。仅用于读取。
- Returns
-
nv_bfloat16
重新解释后的值。
-
__host__ __device__ __nv_bfloat162 make_bfloat162(const __nv_bfloat16 x, const __nv_bfloat16 y)
-
向量函数,将两个
nv_bfloat16数值合并为一个nv_bfloat162数值。将两个输入的
nv_bfloat16数值x和y合并为一个nv_bfloat162数值。输入的x存储在返回值的低16位,输入的y存储在高16位。- Parameters
-
x – [输入] - nv_bfloat16。仅用于读取。
y – [输入] - nv_bfloat16。仅用于读取。
- Returns
-
一个
__nv_bfloat162向量,其中一半等于x,另一半等于y。