15.5. __nv_bfloat16
-
struct __nv_bfloat16
-
nv_bfloat16 数据类型
此结构体实现了用于存储 nv_bfloat16 浮点数的数据类型。该结构体实现了赋值运算符和类型转换。总共使用 16 位:1 位符号位,8 位指数位,尾数存储在 7 位中。总精度为 8 位。
公共函数
-
__nv_bfloat16() = default
-
默认构造函数。
空的默认构造函数,结果未初始化。
-
__host__ __device__ inline explicit __nv_bfloat16(const __half f)
-
从
__half
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline constexpr __nv_bfloat16(const __nv_bfloat16_raw &hr)
-
从
__nv_bfloat16_raw
构造。
-
__host__ __device__ inline __nv_bfloat16(const double f)
-
从
double
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(const float f)
-
从
float
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(const long val)
-
从
long
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(const unsigned long val)
-
从
unsigned
long
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(int val)
-
从
int
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(long long val)
-
从
long
long
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(short val)
-
从
short
整数输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(unsigned int val)
-
从
unsigned
int
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(unsigned long long val)
-
从
unsigned
long
long
输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ inline __nv_bfloat16(unsigned short val)
-
从
unsigned
short
整数输入构造__nv_bfloat16
,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ operator __nv_bfloat16_raw() const
-
类型转换为
__nv_bfloat16_raw
运算符。
-
__host__ __device__ operator __nv_bfloat16_raw() volatile const
-
类型转换为带有
volatile
输入的__nv_bfloat16_raw
运算符。
-
__host__ __device__ inline constexpr operator bool() const
-
转换为
bool
数据类型的转换运算符。+0 和 -0 输入转换为
false
。非零输入转换为true
。
-
__host__ __device__ operator char() const
-
转换为实现定义的
char
数据类型的转换运算符。使用向零舍入模式。
检测
char
类型的有符号性并据此进行处理,更多详细信息请参见有符号和无符号 char 运算符。
-
__host__ __device__ operator float() const
-
类型转换为
float
运算符。
-
__host__ __device__ operator int() const
-
转换为
int
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162int_rz(__nv_bfloat16)
-
__host__ __device__ operator long() const
-
转换为
long
数据类型的转换运算符。使用向零舍入模式。
-
__host__ __device__ operator long long() const
-
转换为
long
long
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162ll_rz(__nv_bfloat16)
-
__host__ __device__ operator short() const
-
转换为
short
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162short_rz(__nv_bfloat16)
-
__host__ __device__ operator signed char() const
-
转换为
signed
char
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162char_rz(__nv_bfloat16)
-
__host__ __device__ operator unsigned char() const
-
转换为
unsigned
char
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162uchar_rz(__nv_bfloat16)
-
__host__ __device__ operator unsigned int() const
-
转换为
unsigned
int
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162uint_rz(__nv_bfloat16)
-
__host__ __device__ operator unsigned long() const
-
转换为
unsigned
long
数据类型的转换运算符。使用向零舍入模式。
-
__host__ __device__ operator unsigned long long() const
-
转换为
unsigned
long
long
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162ull_rz(__nv_bfloat16)
-
__host__ __device__ operator unsigned short() const
-
转换为
unsigned
short
数据类型的转换运算符。使用向零舍入模式。
有关更多详细信息,请参见 __bfloat162ushort_rz(__nv_bfloat16)
-
__host__ __device__ __nv_bfloat16 &operator=(const __nv_bfloat16_raw &hr)
-
来自
__nv_bfloat16_raw
的赋值运算符。
-
__host__ __device__ volatile __nv_bfloat16 &operator=(const __nv_bfloat16_raw &hr) volatile
-
从
__nv_bfloat16_raw
到volatile
__nv_bfloat16
的赋值运算符。
-
__host__ __device__ __nv_bfloat16 &operator=(const double f)
-
类型转换为
__nv_bfloat16
的赋值运算符,从double
输入,使用默认的舍入到最近的偶数模式。
-
__host__ __device__ __nv_bfloat16 &operator=(const float f)
-
从
float
类型输入转换到__nv_bfloat16
赋值运算符,使用默认的舍入到最近偶数模式。
-
__host__ __device__ volatile __nv_bfloat16 &operator=(volatile const __nv_bfloat16_raw &hr) volatile
-
从
volatile
__nv_bfloat16_raw
赋值运算符到volatile
__nv_bfloat16
。
-
__host__ __device__ __nv_bfloat16 &operator=(int val)
-
从
int
类型转换的赋值运算符,使用默认的舍入到最近偶数模式。
-
__host__ __device__ __nv_bfloat16 &operator=(long long val)
-
从
long
long
类型转换的赋值运算符,使用默认的舍入到最近偶数模式。
-
__host__ __device__ __nv_bfloat16 &operator=(short val)
-
从
short
类型转换的赋值运算符,使用默认的舍入到最近偶数模式。
-
__host__ __device__ __nv_bfloat16 &operator=(unsigned int val)
-
从
unsigned
int
类型转换的赋值运算符,使用默认的舍入到最近偶数模式。
-
__host__ __device__ __nv_bfloat16 &operator=(unsigned long long val)
-
从
unsigned
long
long
类型转换的赋值运算符,使用默认的舍入到最近偶数模式。
-
__host__ __device__ __nv_bfloat16 &operator=(unsigned short val)
-
从
unsigned
short
类型转换的赋值运算符,使用默认的舍入到最近偶数模式。
-
__nv_bfloat16() = default