已合并
docs: Add description of NaN/Inf handling behavior for aclFloat16ToFloat/aclFloatToFloat16 (#790) #4102
rui创建于 16 天前
docs: Add description of NaN/Inf handling behavior for aclFloat16ToFloat/aclFloatToFloat16 (#790) #4102
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 rui 的贡献)atomgit-bot
16 天前 评论:
16 天前 评论:
变更摘要
本次变更主要针对 aclFloat16ToFloat 和 aclFloatToFloat16 两个浮点转换接口,补充了 NaN/Inf 等特殊值的处理行为说明。由于芯片只支持饱和模式,aclFloatToFloat16(FP32→FP16)将 NaN/Inf 均转换为 FP16 最大值 65504.0,而 aclFloat16ToFloat(FP16→FP32)则不会保留 NaN/Inf,转换结果为普通有限数值。变更在头文件、源码实现及 API 文档中统一补充了相关注释,并修正了一处与实际行为不符的旧注释。
主要改动
- 头文件
acl_base_rt.h补充@note注释:在aclFloat16ToFloat和aclFloatToFloat16的声明处各新增@note,分别说明 NaN/Inf 不会被保留(转为普通有限数值)和按饱和模式处理(转为 FP16 MAX 65504.0),并建议用户如需保留 NaN/Inf 语义应直接在算子计算中产生。
- **`fp16_impl.cpp` 修正旧注释并补充说明**:将 `FloatToFp16` 函数中旧注释 `Exponent overflow/NaN converts to signed inf/NaN` 修正为 `指数溢出/NaN/Inf按饱和模式处理,转换为有符号MAX`,使其与实际行为一致;同时在 `Fp16ToFloat` 和 `FloatToFp16` 函数定义处各新增一行注释说明 NaN/Inf 处理行为。
fp16_impl.h函数声明处补充注释:在FloatToFp16和Fp16ToFloat声明处分别补充 NaN/Inf 按饱和模式处理和不被保留的注释说明。fp16.cpp包装函数处补充注释:在aclFloat16ToFloatImpl和aclFloatToFloat16Impl处各新增一行注释,说明各自对 NaN/Inf 的处理行为及兼容背景。


atomgit-bot
16 天前 评论:
16 天前 评论:
16 天前 添加了label:cann-cla/yes
此处折叠了67条消息 查看更多
13 天前 添加了label:lgtm
13 天前 添加了label:approved
13 天前 合入了pull request
12 天前 修改标题为 “docs: Add description of NaN/Inf handling behavior for aclFloat16ToFloat/aclFloatToFloat16 (#790)”,原标题为“docs: 补充aclFloat16ToFloat/aclFloatToFloat16的NaN/Inf处理行为说明(#790)”
Pull Request
描述
补充 aclFloat16ToFloat 和 aclFloatToFloat16 接口对 NaN/Inf 特殊值处理行为的说明。
当前文档和源码注释未说明 NaN/Inf 的处理行为,容易导致用户误解。实际上两个方向的 NaN/Inf 处理行为不同:
该行为是为了兼容仅支持饱和模式的芯片,适用于所有形态。
本次变更在以下位置补充说明:
变更类型
关联的Issue
#790
如何测试
核对清单