CANN/asc-devkit SIMT内置宏详解
内置宏【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit下表列出了一些常用的内置宏涵盖了bfloat16、half和float三种浮点类型的特殊值以及常用的数学常数、对数和边界值。当开发者需要处理浮点边界或数学常量时可以直接参考并使用这些内置宏无需手动定义或查阅具体的数值从而可以将更多精力集中在算法逻辑上。表1常用内置宏列表宏名描述需要包含的头文件ASCRT_INF_BF16定义bfloat16类型的正无穷大值。asc_bf16.hASCRT_MAX_NORMAL_BF16定义bfloat16类型的最大表示值。asc_bf16.hASCRT_MIN_DENORM_BF16定义bfloat16类型的最小表示值。asc_bf16.hASCRT_NAN_BF16定义bfloat16类型的nan值。asc_bf16.hASCRT_NEG_ZERO_BF16定义bfloat16类型的负零值。asc_bf16.hASCRT_ONE_BF16定义bfloat16类型的1.0值。asc_bf16.hASCRT_ZERO_BF16定义bfloat16类型的正零值。asc_bf16.hASCRT_INF_FP16定义half类型的正无穷大值。asc_fp16.hASCRT_MAX_NORMAL_FP16定义half类型的最大表示值。asc_fp16.hASCRT_MIN_DENORM_FP16定义half类型的最小表示值。asc_fp16.hASCRT_NAN_FP16定义half类型的nan值。asc_fp16.hASCRT_NEG_ZERO_FP16定义half类型的负零值。asc_fp16.hASCRT_ONE_FP16定义half类型的1.0值。asc_fp16.hASCRT_ZERO_FP16定义half类型的正零值。asc_fp16.hASCRT_INF_F定义float类型的正无穷大值。math_constants.hASCRT_NAN_F定义float类型的nan值。math_constants.hASCRT_MIN_DENORM_F定义float类型的最小表示值。math_constants.hASCRT_MAX_NORMAL_F定义float类型的最大表示值。math_constants.hASCRT_NEG_ZERO_F定义float类型的负零值。math_constants.hASCRT_ZERO_F定义float类型的正零值。math_constants.hASCRT_ONE_F定义float类型的1.0值。math_constants.hASCRT_SQRT_HALF_F定义$\sqrt{1/2}$的浮点数值。math_constants.hASCRT_SQRT_HALF_HI_F定义$\sqrt{1/2}$的高位部分浮点数值。math_constants.hASCRT_SQRT_HALF_LO_F定义$\sqrt{1/2}$的低位部分浮点数值。math_constants.hASCRT_SQRT_TWO_F定义$\sqrt{2}$的浮点数值。math_constants.hASCRT_THIRD_F定义$1/3$的浮点数值。math_constants.hASCRT_PIO4_F定义$\pi/4$的浮点数值。math_constants.hASCRT_PIO2_F定义$\pi/2$的浮点数值。math_constants.hASCRT_3PIO4_F定义$3\pi/4$的浮点数值。math_constants.hASCRT_2_OVER_PI_F定义$2/\pi$的浮点数值。math_constants.hASCRT_SQRT_2_OVER_PI_F定义$\sqrt{2/\pi}$的浮点数值。math_constants.hASCRT_PI_F$\pi$的浮点数值。math_constants.hASCRT_L2E_F定义$\log_2(e)$的浮点数值。math_constants.hASCRT_L2T_F定义$\log_2(10)$的浮点数值。math_constants.hASCRT_LG2_F定义$\log_{10}(2)$的浮点数值。math_constants.hASCRT_LGE_F定义$\log_{10}(e)$的浮点数值。math_constants.hASCRT_LN2_F定义$\ln(2)$的浮点数值。math_constants.hASCRT_LNT_F定义$\ln(10)$的浮点数值。math_constants.hASCRT_LNPI_F定义$\ln(\pi)$的浮点数值。math_constants.hASCRT_TWO_TO_M126_F定义$2^{-126}$的浮点数值。math_constants.hASCRT_TWO_TO_126_F定义$2^{126}$的浮点数值。math_constants.hASCRT_NORM_HUGE_F定义float类型的最大有限值超过该值即溢出到inf。math_constants.hASCRT_TWO_TO_23_F定义$2^{23}$的浮点数值。math_constants.hASCRT_TWO_TO_24_F定义$2^{24}$的浮点数值。math_constants.hASCRT_TWO_TO_31_F定义$2^{31}$的浮点数值。math_constants.hASCRT_TWO_TO_32_F定义$2^{32}$的浮点数值。math_constants.hASCRT_REMQUO_BITS_F在remquof函数中提取商的最低3位有效位即数值为3。math_constants.hASCRT_REMQUO_MASK_F用于提取remquof结果中低3位比特的位掩码。math_constants.hASCRT_TRIG_PLOSS_F105615.0F表示三角函数计算中精度损失的临界阈值。math_constants.hASCRT_MIN_VAL_S定义int32类型的最小值。math_constants.hASCRT_MAX_VAL_S定义int32类型的最大值。math_constants.h【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考