5. Bfloat16 精度内联函数
本节介绍 nv_bfloat16 精度内联函数。
要使用这些函数,请在程序中包含头文件 cuda_bf16.h
。此处定义的所有函数都可在设备代码中使用。某些函数也可用于主机编译器,详情请参阅各个函数的文档。
注意:主机或设备编译器执行的激进浮点优化可能会影响此头文件中实现的函数的数值行为。具体示例如下:
以下宏可帮助用户选择性地启用/禁用头文件中存在的各种定义
CUDA_NO_BFLOAT16
- 如果定义,此宏将阻止在全局命名空间中定义其他类型别名,从而帮助避免与用户程序中定义的符号发生潜在冲突。__CUDA_NO_BFLOAT16_CONVERSIONS__
- 如果定义,此宏将阻止使用 C++ 类型转换(转换构造函数和转换运算符),这些转换对于内置浮点类型很常见,但对于__nv_bfloat16
(本质上是用户定义的类型)可能不理想。__CUDA_NO_BFLOAT16_OPERATORS__
和__CUDA_NO_BFLOAT162_OPERATORS__
- 如果定义,这些宏将阻止意外使用常用的算术和比较运算符。 这将强制执行仅存储类型语义,并防止对__nv_bfloat16
和__nv_bfloat162
类型进行 C++ 样式计算。
组
- Bfloat16 算术常量
-
要使用这些常量,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat16 算术函数
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat16 比较函数
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat16 数学函数
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat16 精度转换和数据移动
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat162 算术函数
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat162 比较函数
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。 - Bfloat162 数学函数
-
要使用这些函数,请在程序中包含头文件
cuda_bf16.h
。
结构体
- __nv_bfloat16
-
nv_bfloat16 数据类型
- __nv_bfloat162
-
nv_bfloat162 数据类型
- __nv_bfloat162_raw
-
__nv_bfloat162_raw 数据类型
- __nv_bfloat16_raw
-
__nv_bfloat16_raw 数据类型
类型定义
- nv_bfloat16
-
此数据类型旨在成为 bfloat16 数字格式的一流或基本实现。
- nv_bfloat162
-
此数据类型旨在成为 bfloat16 数字对类型的一流或基本实现。
5.9. 类型定义
-
typedef __nv_bfloat16 nv_bfloat16
-
此数据类型旨在成为 bfloat16 数字格式的一流或基本实现。
未来应在编译器中实现。当前的实现只是一个简单的类型定义,指向带有下划线的相应用户级类型。
-
typedef __nv_bfloat162 nv_bfloat162
-
此数据类型旨在成为 bfloat16 数字对类型的一流或基本实现。
未来应在编译器中实现。当前的实现只是一个简单的类型定义,指向带有下划线的相应用户级类型。