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向量在四舍五入到最近偶数模式下的余弦值。

计算输入向量anv_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向量指数函数,采用四舍五入到最近偶数模式。

计算输入向量anv_bfloat162指数函数,采用四舍五入到最近偶数模式。

Parameters

a[输入] - nv_bfloat162。仅用于读取。

Returns

nv_bfloat162

  • 向量 a 上的逐元素指数函数。

__device__ __nv_bfloat162 h2exp10(const __nv_bfloat162 a)

计算nv_bfloat162向量的十进制指数函数,采用四舍五入到最近偶数模式。

计算输入向量anv_bfloat162十进制指数函数,采用四舍五入到最近偶数模式。

Parameters

a[输入] - nv_bfloat162。仅用于读取。

Returns

nv_bfloat162

  • 向量a上的逐元素十进制指数函数。

__device__ __nv_bfloat162 h2exp2(const __nv_bfloat162 a)

计算nv_bfloat162向量的二进制指数函数,采用四舍五入到最近偶数模式。

计算输入向量anv_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向量在四舍五入到最近偶数模式下的自然对数。

计算输入向量anv_bfloat162自然对数,采用四舍五入到最接近偶数模式。

Parameters

a[输入] - nv_bfloat162。仅用于读取。

Returns

nv_bfloat162

  • 对向量 a 进行逐元素自然对数运算。

__device__ __nv_bfloat162 h2log10(const __nv_bfloat162 a)

计算nv_bfloat162向量在四舍五入到最近偶数模式下的十进制对数。

计算输入向量anv_bfloat162十进制对数,采用四舍五入到最近偶数模式。

Parameters

a[输入] - nv_bfloat162。仅用于读取。

Returns

nv_bfloat162

  • 对向量 a 进行逐元素十进制对数运算。

__device__ __nv_bfloat162 h2log2(const __nv_bfloat162 a)

计算nv_bfloat162向量二进制对数,采用四舍五入到最近偶数模式。

计算输入向量anv_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向量的倒数平方根,采用四舍五入到最接近偶数模式。

计算输入向量anv_bfloat162倒数平方根,采用四舍五入到最接近偶数模式。

Parameters

a[输入] - nv_bfloat162。仅用于读取。

Returns

nv_bfloat162

  • 对向量 a 进行逐元素倒数平方根运算。

__device__ __nv_bfloat162 h2sin(const __nv_bfloat162 a)

计算nv_bfloat162向量正弦值,采用四舍五入到最近偶数模式。

计算输入向量anv_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向量在四舍五入到最近偶数模式下的平方根。

计算输入向量anv_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向量的近似双曲正切函数。

计算输入向量anv_bfloat162近似双曲正切函数。该操作在计算能力9.x及以上的设备上使用硬件加速。

另请参阅

htanh_approx(__nv_bfloat16) 详情请见。

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