已合并
docs: Add description of NaN/Inf handling behavior for aclFloat16ToFloat/aclFloatToFloat16 (#790) #4102
docs: Add description of NaN/Inf handling behavior for aclFloat16ToFloat/aclFloatToFloat16 (#790) #4102
已合并
rui创建于 16 天前
rui成员
16 天前

Pull Request

描述

补充 aclFloat16ToFloat 和 aclFloatToFloat16 接口对 NaN/Inf 特殊值处理行为的说明。

当前文档和源码注释未说明 NaN/Inf 的处理行为,容易导致用户误解。实际上两个方向的 NaN/Inf 处理行为不同:

  • aclFloatToFloat16(FP32→FP16):按饱和模式处理,NaN和Inf均转换为极大值(FP16 MAX 65504.0)
  • aclFloat16ToFloat(FP16→FP32):NaN/Inf不会被保留,转换结果为普通有限数值

该行为是为了兼容仅支持饱和模式的芯片,适用于所有形态。

本次变更在以下位置补充说明:

  1. API文档(24_other_APIs.md):两个接口功能说明中补充NaN/Inf处理行为
  2. 头文件(acl_base_rt.h):接口声明新增@note注释
  3. 源码(fp16_impl.h/cpp、fp16.cpp):函数声明和实现处补充注释
  4. 修正fp16_impl.cpp中旧注释(Exponent overflow/NaN converts to signed inf/NaN → 与实际行为不符)
  5. 建议用户如需保留NaN/Inf语义,直接在算子计算中产生,不要通过本接口构造

变更类型

关联的Issue

#790

如何测试

  1. 文档变更,无需编译测试
  2. 已核对所有描述与代码实际行为一致

核对清单

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 rui 的贡献)
Rrui成员
16 天前 创建了 pull request,commit 4e7c007b
Rrui成员
16 天前 关联了issue:[Bug-Report|缺陷反馈]: [CANNBot] aclFloatToFloat16 NaN/Inf bug. INF/NAN will be converted to FP16-MAX
atomgit-bot
atomgit-bot
16 天前 评论:

变更摘要

本次变更主要针对 aclFloat16ToFloataclFloatToFloat16 两个浮点转换接口,补充了 NaN/Inf 等特殊值的处理行为说明。由于芯片只支持饱和模式,aclFloatToFloat16(FP32→FP16)将 NaN/Inf 均转换为 FP16 最大值 65504.0,而 aclFloat16ToFloat(FP16→FP32)则不会保留 NaN/Inf,转换结果为普通有限数值。变更在头文件、源码实现及 API 文档中统一补充了相关注释,并修正了一处与实际行为不符的旧注释。

主要改动

  • 头文件 acl_base_rt.h 补充 @note 注释:在 aclFloat16ToFloataclFloatToFloat16 的声明处各新增 @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 函数声明处补充注释:在 FloatToFp16Fp16ToFloat 声明处分别补充 NaN/Inf 按饱和模式处理和不被保留的注释说明。
  • fp16.cpp 包装函数处补充注释:在 aclFloat16ToFloatImplaclFloatToFloat16Impl 处各新增一行注释,说明各自对 NaN/Inf 的处理行为及兼容背景。
likedislike
atomgit-bot
atomgit-bot
16 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
16 天前 添加了label:cann-cla/yes
此处折叠了67条消息 查看更多
CANN-robotCANN-robot成员
13 天前 添加了label:lgtm
shikai成员
13 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
13 天前 添加了label:approved
CANN-robotCANN-robot成员
13 天前 合入了pull request
Rrui成员
12 天前 修改标题为 “docs: Add description of NaN/Inf handling behavior for aclFloat16ToFloat/aclFloatToFloat16 (#790)”,原标题为“docs: 补充aclFloat16ToFloat/aclFloatToFloat16的NaN/Inf处理行为说明(#790)”