已关闭
[Requirement|需求建议]: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt 芯片平台 #3306
jzj007创建于  9月24日关闭于  8 天前
jzj007
jzj007
9月24日 创建

一、背景信息 (必填)

arg_max_v2、arg_max_with_value、arg_min、arg_min_with_value 五个算子当前仅支持 ascend950/ascend350 等平台,需新增 ascend960dt 芯片平台支持,使算子可在 ascend960dt 上编译并生成二进制 kernel。

二、价值/作用 (必填)

补齐上述 4 个算子在 ascend960dt(arch35)平台的支持能力,保证算子 v121 分支合入主线后可在新平台正常交付使用。

三、设计方案 (必填)

为 4 个算子新增 ascend960dt 编译单元与 AICore 配置,复用 arch35 tiling/kernel 实现,并生成对应 binary 配置。

3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)

Aclnn 直调(算子二进制/自定义算子编译集成)。

3.2 总体设计
3.2.1 算子支持的数据类型
  • ArgMaxV2 / ArgMin(输出为索引):输入 bfloat16、float16、float32、int32、int64;输出 int32、int64
  • ArgMaxWithValue / ArgMinWithValue:输入 bfloat16、float16、float32、int32、int64;输出与输入同 dtype
3.2.2 host侧设计

各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 增加 ascend960dt、SUPPORT_TILING_DIR 增加 arch35;各算子 op_host/*_def.cpp 增加 AICore().AddConfig("ascend960dt", aicore_config);新增 op_host/config/ascend960dt/ 下的 {op}_binary.json 与 {op}_simplified_key.ini;ascendc_config.json 为对应算子增加 ascend960dt compute_units 及编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false。

3.2.3 kernel侧设计

无新增 kernel 实现,复用现有 arch35 kernel 二进制,通过 binary 配置生成 ascend960dt 二进制。

3.3 支持硬件

ascend960dt。

3.4 算子约束限制

沿用现有算子约束,未新增限制。

💡 备注(选填)
关联 PR:https://gitcode.com/cann/ops-math/pull/5787

likedislike
jzj007jzj007
9月24日 添加了label:requirement
jzj007
jzj007
9月24日 评论:

/assign @jzj007

likedislike
CANN-robotCANN-robot成员
9月24日 将 jzj007 设为负责人
liuchenghao
liuchenghao
9月24日 评论:

【Multica 同步】状态:backlog(待认领);说明:本算子任务已同步至 Multica「CANN 算子开发迁移」项目,将按社区规格承接开发与质检(社区侧已被认领且关联 PR #5787 在途,承接前会先核对该 PR 进展,避免重复实现);详情:AI4ME-499

likedislike
jzj007jzj007
8 天前 修改标题为 “[Requirement|需求建议]: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt 芯片平台”,原标题为“[Requirement|需求建议]: diag/arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt 芯片平台”
jzj007jzj007
8 天前 修改了issue 的描述
CANN-robotCANN-robot成员
8 天前 关闭了 issue
CANN-robotCANN-robot成员
8 天前 添加了label:resolved