4. 半精度内置函数
本节介绍半精度内置函数。
要使用这些函数,请在程序中包含头文件cuda_fp16.h。此处定义的所有函数都可在设备代码中使用。部分函数也可供主机编译器使用,详情请参阅各函数的文档说明。
注意:主机或设备编译器执行的激进浮点优化可能会影响本头文件中实现的函数的数值行为。
以下宏定义可供用户选择性地启用/禁用头文件中的各种定义:
CUDA_NO_HALF- 如果定义了这个宏,它将阻止在全局命名空间中定义额外的类型别名,有助于避免与用户程序中定义的符号产生潜在冲突。__CUDA_NO_HALF_CONVERSIONS__- 如果定义了这个宏,将禁止使用C++类型转换(转换构造函数和转换运算符),这些转换对于内置浮点类型很常见,但对于本质上是用户自定义类型的half可能并不理想。__CUDA_NO_HALF_OPERATORS__和__CUDA_NO_HALF2_OPERATORS__- 如果定义了这些宏,将防止意外使用常规算术和比较运算符。这强制执行仅存储类型语义,并防止在half和half2类型上进行C++风格的计算。
群组
- 半精度算术常量
-
要使用这些常量,请在程序中包含头文件
cuda_fp16.h。 - 半算术函数
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。 - 半精度比较函数
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。 - 半精度数学函数
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。 - 半精度转换与数据移动
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。 - Half2算术运算函数
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。 - Half2比较函数
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。 - Half2 数学函数
-
要使用这些函数,请在程序中包含头文件
cuda_fp16.h。
结构体
- __half
-
__half 数据类型
- __half2
-
__half2 数据类型
- __half2_raw
-
__half2_raw 数据类型
- __half_raw
-
__half_raw 数据类型
类型定义
- __nv_half
-
该数据类型是一个带有
__nv_前缀的别名。 - __nv_half2
-
该数据类型是一个带有
__nv_前缀的别名。 - __nv_half2_raw
-
该数据类型是一个带有
__nv_前缀的别名。 - __nv_half_raw
-
该数据类型是一个带有
__nv_前缀的别名。 - half
-
该数据类型旨在成为半精度数字格式的一流或基础实现。
- half2
-
该数据类型旨在成为半精度数对的一流或基础类型实现。
- nv_half
-
该数据类型是一个带有
nv_前缀的别名。 - nv_half2
-
该数据类型是一个带有
nv_前缀的别名。
4.9. 类型定义
-
typedef __half2_raw __nv_half2_raw
-
该数据类型是一个带有
__nv_前缀的别名。
-
typedef __half_raw __nv_half_raw
-
该数据类型是一个带有
__nv_前缀的别名。