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_
前缀的别名。