已关闭
[Requirement|需求建议]: split_v/split/unpack 算子支持 ascend960dt #3353
zhanw_coding创建于  10 天前关闭于  10 天前
zhanw_coding
zhanw_coding成员
10 天前 创建

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

一、背景信息 (必填)

为 conversion 目录下的 split_v、split、unpack 三个算子新增 ascend960dt 平台支持,使其能够在 ascend960dt 平台完成算子定义注册与 tiling 编译。

二、价值/作用 (必填)

扩展上述算子可运行的硬件平台,使 ascend960dt 平台下可通过 aclnn 等方式调用 split_v、split、unpack 算子。

三、设计方案 (必填)

3.1 使能方式

在算子工程 CMakeLists.txt 中增加 COMPUTE_UNIT 与 TILING_DIR,在 op_host 的 *_def.cpp 中 AddConfig,补充 op_host/config/ascend960dt 下的 binary config 与 simplified_key,并在 scripts/kernel/binary_config/ascendc_config.json 中登记 ascend960dt 的编译配置,使算子编出 ascend960dt 版本。

3.2 总体设计
3.2.1 算子支持的数据类型
  • Split:float16、float32、int64、int8;split_dim 支持 int32/int64(共 8 个 bin)。
  • SplitV:float16、float32、int64、int8;size_splits 支持 int32/int64(共 16 个 bin)。
  • Unpack:float16、float32、int8、int64(共 4 个 bin)。
3.2.2 host侧设计
  • CMakeLists.txt:split / split_v / unpack 的 COMPUTE_UNIT 增加 ascend960dt,TILING_DIR 增加 arch35。
  • *_def.cpp:三者均新增 this->AICore().AddConfig("ascend960dt", aicoreConfig);。
  • 新增 op_host/config/ascend960dt/ 目录:split_binary.json、split_v_binary.json、unpack_binary.json 及对应 *_simplified_key.ini。
  • scripts/kernel/binary_config/ascendc_config.json:Split、SplitV、Unpack 的 compute_units 增加 ascend960dt,并增加 compile_options "ascend960dt": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]。
3.3 支持硬件

新增 ascend960dt;原有支持平台保持不变(split_v/unpack:ascend310p、ascend910_93、ascend910b、ascend950、ascend350、mc62;split:ascend950、mc62、ascend350)。

3.4 算子约束限制

本次改动未修改算子对外约束与数据类型限制,仅新增 ascend960dt 平台支持。

💡 备注(选填)

likedislike
zhanw_codingzhanw_coding成员
10 天前 添加了label:requirement
zhanw_coding
zhanw_coding成员
10 天前 评论:

/assign

likedislike
CANN-robotCANN-robot成员
10 天前 将 zhanw_coding 设为负责人
CANN-robotCANN-robot成员
10 天前 关闭了 issue
CANN-robotCANN-robot成员
10 天前 添加了label:resolved