5.8. Bfloat16 数学函数
要使用这些函数,请在程序中包含头文件cuda_bf16.h。
Functions
- __device__ __nv_bfloat162 h2ceil(const __nv_bfloat162 h)
-
计算输入参数的
nv_bfloat162向量上限。 - __device__ __nv_bfloat162 h2cos(const __nv_bfloat162 a)
-
以四舍五入到最近偶数模式计算
nv_bfloat162向量余弦值。 - __device__ __nv_bfloat162 h2exp(const __nv_bfloat162 a)
-
以四舍五入到最近偶数模式计算
nv_bfloat162向量的指数函数。 - __device__ __nv_bfloat162 h2exp10(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的十进制指数函数,采用四舍五入到最近偶数模式。 - __device__ __nv_bfloat162 h2exp2(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量二进制指数函数,采用四舍五入到最近偶数模式。 - __device__ __nv_bfloat162 h2floor(const __nv_bfloat162 h)
-
计算小于或等于
h的最大整数。 - __device__ __nv_bfloat162 h2log(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的自然对数。 - __device__ __nv_bfloat162 h2log10(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的十进制对数。 - __device__ __nv_bfloat162 h2log2(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的二进制对数。 - __device__ __nv_bfloat162 h2rcp(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的倒数。 - __device__ __nv_bfloat162 h2rint(const __nv_bfloat162 h)
-
将输入四舍五入为最接近的nv_bfloat16浮点数整数值。
- __device__ __nv_bfloat162 h2rsqrt(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的倒数平方根,采用四舍五入到最近偶数模式。 - __device__ __nv_bfloat162 h2sin(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量正弦,采用四舍五入到最近偶数模式。 - __device__ __nv_bfloat162 h2sqrt(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的平方根。 - __device__ __nv_bfloat162 h2tanh(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量双曲正切函数,采用四舍五入到最近偶数模式。 - __device__ __nv_bfloat162 h2tanh_approx(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的近似双曲正切函数。 - __device__ __nv_bfloat162 h2trunc(const __nv_bfloat162 h)
-
将
nv_bfloat162向量输入参数截断为整数部分。
5.8.1. 函数
-
__device__ __nv_bfloat162 h2ceil(const __nv_bfloat162 h)
-
计算输入参数的
nv_bfloat162向量上限值。对于向量
h的每个分量,计算不小于h的最小整数值。- Parameters
-
h – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
不小于
h的最小整数向量。
-
__device__ __nv_bfloat162 h2cos(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的余弦值。计算输入向量
a的nv_bfloat162余弦值,采用四舍五入到最近偶数模式。注意:此函数的实现调用了cosf(float)函数,并暴露给编译器优化。具体来说,
--use_fast_math标志会将cosf(float)转换为内联函数__cosf(float),这会降低数值计算的精确度。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
向量
a上的逐元素余弦运算。
-
__device__ __nv_bfloat162 h2exp(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量指数函数,采用四舍五入到最近偶数模式。计算输入向量
a的nv_bfloat162指数函数,采用四舍五入到最近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
向量
a上的逐元素指数函数。
-
__device__ __nv_bfloat162 h2exp10(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的十进制指数函数,采用四舍五入到最近偶数模式。计算输入向量
a的nv_bfloat162十进制指数函数,采用四舍五入到最近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
向量
a上的逐元素十进制指数函数。
-
__device__ __nv_bfloat162 h2exp2(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的二进制指数函数,采用四舍五入到最近偶数模式。计算输入向量
a的nv_bfloat162二元指数函数,采用四舍五入到最近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素的二元指数函数运算。
-
__device__ __nv_bfloat162 h2floor(const __nv_bfloat162 h)
-
计算小于或等于
h的最大整数。对于向量
h的每个分量,计算小于或等于h的最大整数值。- Parameters
-
h – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
小于或等于
h的最大整数向量。
-
__device__ __nv_bfloat162 h2log(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的自然对数。计算输入向量
a的nv_bfloat162自然对数,采用四舍五入到最接近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素自然对数运算。
-
__device__ __nv_bfloat162 h2log10(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的十进制对数。计算输入向量
a的nv_bfloat162十进制对数,采用四舍五入到最近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素十进制对数运算。
-
__device__ __nv_bfloat162 h2log2(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量二进制对数,采用四舍五入到最近偶数模式。计算输入向量
a的nv_bfloat162二进制对数,采用四舍五入到最近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素的二进制对数运算。
-
__device__ __nv_bfloat162 h2rcp(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的倒数。计算输入向量
a在四舍五入到最近偶数模式下的nv_bfloat162倒数。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素倒数运算。
-
__device__ __nv_bfloat162 h2rint(const __nv_bfloat162 h)
-
将输入四舍五入为最接近的nv_bfloat16浮点数整数值。
将
nv_bfloat162向量h的每个分量四舍五入为最接近的nv_bfloat16浮点格式整数值,其中bfloat16中间值情况会舍入到最接近的偶数整数值。- Parameters
-
h – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
四舍五入后的整数值向量。
-
__device__ __nv_bfloat162 h2rsqrt(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的倒数平方根,采用四舍五入到最接近偶数模式。计算输入向量
a的nv_bfloat162倒数平方根,采用四舍五入到最接近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素倒数平方根运算。
-
__device__ __nv_bfloat162 h2sin(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量正弦值,采用四舍五入到最近偶数模式。计算输入向量
a的nv_bfloat162正弦值,采用四舍五入到最近偶数模式。注意:此函数的实现调用了sinf(float)函数,并暴露给编译器优化。具体而言,
--use_fast_math标志会将sinf(float)转换为内置函数__sinf(float),其数值精度较低。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
向量
a上的逐元素正弦运算。
-
__device__ __nv_bfloat162 h2sqrt(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量在四舍五入到最近偶数模式下的平方根。计算输入向量
a的nv_bfloat162平方根,采用四舍五入到最接近偶数模式。- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素平方根运算。
-
__device__ __nv_bfloat162 h2tanh(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量双曲正切函数,采用四舍五入到最近偶数模式。计算输入向量
a的双曲正切函数,采用四舍五入到最近偶数模式。另请参阅
htanh(__nv_bfloat16) 更多详情。
- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
对向量
a进行逐元素双曲正切函数运算。
-
__device__ __nv_bfloat162 h2tanh_approx(const __nv_bfloat162 a)
-
计算
nv_bfloat162向量的近似双曲正切函数。计算输入向量
a的nv_bfloat162近似双曲正切函数。该操作在计算能力9.x及以上的设备上使用硬件加速。另请参阅
- Parameters
-
a – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
向量
a上的逐元素近似双曲正切函数。
-
__device__ __nv_bfloat162 h2trunc(const __nv_bfloat162 h)
-
将
nv_bfloat162向量输入参数截断为整数部分。将向量
h的每个分量四舍五入到最接近且幅度不超过h的整数值。- Parameters
-
h – [输入] - nv_bfloat162。仅用于读取。
- Returns
-
nv_bfloat162
截断的
h。