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_rawvolatile __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 类型转换的赋值运算符,使用默认的舍入到最近偶数模式。