CANN/pypto数据类型转换舍入模式
CastMode【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明CastMode定义了数据类型转换时的舍入模式用于控制浮点数转换时的精度处理方式确保转换结果的准确性。原型定义class CastMode(enum.Enum): CAST_NONE ... # 不指定舍入模式由框架自动选择默认值 CAST_RINT ... # 舍入到最近整数平局时舍入到偶数IEEE 754默认 CAST_ROUND ... # 舍入到最近整数平局时远离零舍入 CAST_FLOOR ... # 向下舍入向负无穷方向舍入 CAST_CEIL ... # 向上舍入向正无穷方向舍入 CAST_TRUNC ... # 截断舍入向零方向舍入 CAST_ODD ... # 舍入到奇数Von Neumann舍入方式舍入模式详细说明CastMode说明A2A3支持A5支持CAST_RINT舍入到最近整数平局时舍入到偶数IEEE 754默认全部支持全部支持CAST_ROUND舍入到最近整数平局时远离零舍入全部支持全部支持CAST_FLOOR向下舍入向负无穷方向舍入全部支持全部支持CAST_CEIL向上舍入向正无穷方向舍入全部支持全部支持CAST_TRUNC截断舍入向零方向舍入全部支持全部支持CAST_ODD舍入到奇数Von Neumann舍入方式FP32→FP16FP32→FP16注意CAST_NONE 不是硬件支持的舍入模式而是框架层面的概念表示不指定舍入模式由框架自动选择默认值。使用说明默认 CastMode 规则当用户使用 CAST_NONE 或指定了硬件不支持的 CastMode 时框架会自动采用以下默认 CastMode转换类型默认 CastMode浮点数转整数FP→INTCAST_TRUNC向零截断其他转换场景CAST_RINT舍入到最近偶数类型扩展转换类型扩展转换如 FP16→FP32、INT8→FP16、INT16→INT32 等本身就是无损转换不需要舍入处理此时用户传入的 CastMode 参数会被忽略。不支持的 CastMode 处理当用户为某个转换指定了硬件不支持的 CastMode 时框架不会报错框架自动采用该转换的默认 CastMode遵循上述默认规则二进制舍入规则说明在了解精度转换规则之前需要先了解浮点数的表示方式和二进制的舍入规则浮点数的表示方式DT_FP16共16bit包括1bit符号位S5bit指数位E和10bit尾数位M。当E不全为0或不全为1时表示的结果为(-1)^S × 2^(E-15) × (1 M)当E全为0时表示的结果为(-1)^S × 2^(-14) × M当E全为1时若M全为0表示的结果为±inf取决于符号位若M不全为0表示的结果为nan。DT_FP32共32bit包括1bit符号位S8bit指数位E和23bit尾数位M。当E不全为0或不全为1时表示的结果为(-1)^S × 2^(E-127) × (1 M)当E全为0时表示的结果为(-1)^S × 2^(-126) × M当E全为1时若M全为0表示的结果为±inf取决于符号位若M不全为0表示的结果为nan。DT_BF16共16bit包括1bit符号位S8bit指数位E和7bit尾数位M。当E不全为0或不全为1时表示的结果为(-1)^S × 2^(E-127) × (1 M)当E全为0时表示的结果为(-1)^S × 2^(-126) × M当E全为1时若M全为0表示的结果为±inf取决于符号位若M不全为0表示的结果为nan。各舍入模式的具体行为CAST_RINT若待舍入部分的第一位为0则不进位若第一位为1且后续位不全为0则进位若第一位为1且后续位全为0当M的最后一位为0则不进位当M的最后一位为1则进位。CAST_FLOOR若S为0则不进位若S为1当待舍入部分全为0则不进位否则进位。CAST_CEIL若S为1则不进位若S为0当待舍入部分全为0则不进位否则进位。CAST_ROUND若待舍入部分的第一位为0则不进位否则进位。CAST_TRUNC总是不进位。CAST_ODD若待舍入部分全为0则不进位若待舍入部分不全为0当M的最后一位为1则不进位当M的最后一位为0则进位。【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考