已关闭
[Requirement|需求建议]: Pack算子支持输入的数据类型是DT_HIFLOAT8, DT_FLOAT8_E5M2, DT_FLOAT8_E4M3FN #3285
zhanglei842创建于  29 天前关闭于  29 天前
zhanglei842成员
29 天前 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

一、背景信息 (必填)

当前 aclnnStack(Pack)算子在 aclnn 侧的 dtype 校验白名单不包含 Fp8 类型(HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN),量化网络调用 aclnnStack传入 Fp8 tensor 时,CheckDtypeValid 报 not implemented for this dtype 错误,无法下发执行。

二、价值/作用 (必填)

量化网络(Fp8 量化场景)中广泛使用 Fp8 数据类型,需要 Pack 算子作为拼接(stack)手段。本特性补齐 aclnn 侧 Fp8 支持,打通量化网络中 Fp8 tensor 的 Pack 拼接链路。

三、设计方案 (必填)

3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)
  • Aclnn 直调:aclnnStack/ aclnnStackGetWorkspaceSize接口直接支持 Fp8 输入输出,无需接口变更
  • 不涉及 Pytorch 训练等框架侧改动
3.2 总体设计
3.2.1 算子支持的数据类型

op_graph/pack_proto.h REG_OP 的 x/y TensorType 增加 DT_HIFLOAT8、DT_FLOAT8_E5M2、DT_FLOAT8_E4M3FN

3.2.2 host侧设计
  • aclnn 层:CheckDtypeValid 依据当前架构选择 dtype 白名单,RegBase平台放行 Fp8;类型推导(PromoteType)与输出可转换性校验逻辑复用现有机制,无新增分支
  • tiling 层:白名单中增加三种 Fp8 类型
3.2.3 kernel侧设计

不涉及改动

3.3 支持硬件

Ascend 950PR&950DT

3.4 算子约束限制

HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN 仅在 Ascend 950PR/950DT 上支持,其他平台传入 Fp8 仍报 dtype 不支持

💡 备注(选填)

likedislike
Zzhanglei842成员
29 天前 添加了label:requirement
Zzhanglei842成员
29 天前 关联了pull request:aclnnstack support Fp8
CANN-robotCANN-robot成员
29 天前 关闭了 issue
CANN-robotCANN-robot成员
28 天前 添加了label:resolved