5.4. Bfloat16数学函数

要使用这些函数,请在程序中包含头文件cuda_bf16.h

Functions

__device__ __nv_bfloat16 hceil(const __nv_bfloat16 h)

计算输入参数的上限值。

__device__ __nv_bfloat16 hcos(const __nv_bfloat16 a)

计算nv_bfloat16在最近偶数舍入模式下的余弦值。

__device__ __nv_bfloat16 hexp(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的自然指数函数。

__device__ __nv_bfloat16 hexp10(const __nv_bfloat16 a)

以四舍五入到最近偶数模式计算nv_bfloat16十进制指数函数。

__device__ __nv_bfloat16 hexp2(const __nv_bfloat16 a)

以四舍五入到最接近偶数模式计算nv_bfloat16二进制指数函数。

__device__ __nv_bfloat16 hfloor(const __nv_bfloat16 h)

计算小于或等于h的最大整数。

__device__ __nv_bfloat16 hlog(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的自然对数。

__device__ __nv_bfloat16 hlog10(const __nv_bfloat16 a)

计算nv_bfloat16的十进制对数,采用四舍五入到最近偶数模式。

__device__ __nv_bfloat16 hlog2(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的二进制对数。

__device__ __nv_bfloat16 hrcp(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的倒数。

__device__ __nv_bfloat16 hrint(const __nv_bfloat16 h)

将输入四舍五入为最接近的nv_bfloat16浮点数整数值。

__device__ __nv_bfloat16 hrsqrt(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的倒数平方根。

__device__ __nv_bfloat16 hsin(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的正弦值。

__device__ __nv_bfloat16 hsqrt(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的平方根。

__device__ __nv_bfloat16 htanh(const __nv_bfloat16 a)

计算nv_bfloat16双曲正切函数,采用四舍五入到最近偶数模式。

__device__ __nv_bfloat16 htanh_approx(const __nv_bfloat16 a)

计算近似的nv_bfloat16双曲正切函数。

__device__ __nv_bfloat16 htrunc(const __nv_bfloat16 h)

将输入参数截断为整数部分。

5.4.1. 函数

__device__ __nv_bfloat16 hceil(const __nv_bfloat16 h)

计算输入参数的向上取整值。

计算不小于h的最小整数值。

Parameters

h[输入] - nv_bfloat16。仅用于读取。

Returns

nv_bfloat16

  • 不小于h的最小整数值。

__device__ __nv_bfloat16 hcos(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的余弦值。

计算输入anv_bfloat16余弦值,采用四舍五入到最近偶数模式。

注意:此函数的实现调用了cosf(float)函数,并暴露给编译器优化。具体来说,--use_fast_math标志会将cosf(float)转换为内联函数__cosf(float),这会降低数值计算的精确度。

Parameters

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

Returns

nv_bfloat16

  • a的余弦值。

__device__ __nv_bfloat16 hexp(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的自然指数函数。

计算输入anv_bfloat16自然指数函数,采用四舍五入到最近偶数模式。

Parameters

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

Returns

nv_bfloat16

  • a的自然指数函数。

__device__ __nv_bfloat16 hexp10(const __nv_bfloat16 a)

以四舍五入到最近偶数模式计算nv_bfloat16的十进制指数函数。

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

Parameters

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

Returns

nv_bfloat16

  • a上的十进制指数函数。

__device__ __nv_bfloat16 hexp2(const __nv_bfloat16 a)

以四舍五入到最接近偶数模式计算nv_bfloat16二进制指数函数。

计算输入anv_bfloat16二进制指数函数,采用四舍五入到最接近偶数模式。

Parameters

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

Returns

nv_bfloat16

  • a上的二进制指数函数。

__device__ __nv_bfloat16 hfloor(const __nv_bfloat16 h)

计算小于或等于h的最大整数。

计算小于或等于h的最大整数值。

Parameters

h[输入] - nv_bfloat16。仅用于读取。

Returns

nv_bfloat16

  • 小于或等于h的最大整数值。

__device__ __nv_bfloat16 hlog(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的自然对数。

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

Parameters

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

Returns

nv_bfloat16

  • a的自然对数。

__device__ __nv_bfloat16 hlog10(const __nv_bfloat16 a)

计算nv_bfloat16的十进制对数,采用四舍五入到最近偶数模式。

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

Parameters

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

Returns

nv_bfloat16

  • a的十进制对数。

__device__ __nv_bfloat16 hlog2(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的二进制对数。

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

Parameters

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

Returns

nv_bfloat16

  • a的二进制对数。

__device__ __nv_bfloat16 hrcp(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的倒数。

计算输入anv_bfloat16倒数,采用四舍五入到最近偶数模式。

Parameters

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

Returns

nv_bfloat16

  • a的倒数。

__device__ __nv_bfloat16 hrint(const __nv_bfloat16 h)

将输入四舍五入为最接近的nv_bfloat16浮点数整数值。

h 舍入到最接近的 nv_bfloat16 浮点格式整数值,bfloat16 中间情况舍入到最接近的偶数整数值。

Parameters

h[输入] - nv_bfloat16。仅用于读取。

Returns

nv_bfloat16

  • 最接近 h 的整数。

__device__ __nv_bfloat16 hrsqrt(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的倒数平方根。

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

Parameters

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

Returns

nv_bfloat16

  • a的倒数平方根。

__device__ __nv_bfloat16 hsin(const __nv_bfloat16 a)

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

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

注意:此函数的实现调用了sinf(float)函数,并暴露给编译器优化。具体而言,--use_fast_math标志会将sinf(float)转换为内置函数__sinf(float),其数值精度较低。

Parameters

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

Returns

nv_bfloat16

  • a的正弦值。

__device__ __nv_bfloat16 hsqrt(const __nv_bfloat16 a)

计算nv_bfloat16在四舍五入到最近偶数模式下的平方根。

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

Parameters

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

Returns

nv_bfloat16

  • a的平方根。

__device__ __nv_bfloat16 htanh(const __nv_bfloat16 a)

计算nv_bfloat16的双曲正切函数,采用四舍五入到最接近偶数模式。

计算nv_bfloat16双曲正切函数:\( \tanh(a)\),采用四舍五入到最近偶数模式。

Parameters

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

Returns

nv_bfloat16

  • a的双曲正切函数。

  • htanh \( (\pm 0)\) 返回 \( (\pm 0)\)

  • htanh \( (\pm\infty)\) 返回 \( (\pm 1)\)

  • htanh(NaN) 返回 NaN。

__device__ __nv_bfloat16 htanh_approx(const __nv_bfloat16 a)

计算近似的nv_bfloat16双曲正切函数。

计算近似的nv_bfloat16双曲正切函数:\( \tanh(a)\)。该操作在计算能力9.x及以上的设备上使用硬件加速。

Parameters

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

Returns

nv_bfloat16

  • a的近似双曲正切函数。

  • htanh_approx \( (\pm 0)\) 返回 \( (\pm 0)\).

  • htanh_approx \( (\pm\infty)\) 返回 \( (\pm 1)\)

  • htanh_approx(NaN) 返回 NaN。

__device__ __nv_bfloat16 htrunc(const __nv_bfloat16 h)

将输入参数截断为整数部分。

h舍入到最接近且幅度不超过h的整数值。

Parameters

h[输入] - nv_bfloat16。仅用于读取。

Returns

nv_bfloat16

  • 截断后的整数值。