2.4K Star 8.2K Fork 4.4K

GVPMindSpore / mindspore

 / 详情

PyBoost接口及ACLNN算子适配Topk

TODO
Bug-Report
创建于  
2024-05-14 20:47

Tasks

mint.topk 算子

序号 任务项 任务子项 状态(新增/修改
/无变更/不涉及)
新增功能详细说明
1 接口基本功能 Primitive 新增 新增TopkExt(Primitive)
functional 新增 新增topk_ext接口 , mint.topk
nn 可选 对齐友商,原来无,不新增
tensor 可选 暂时不转测
2 kernel开发&数据类型补齐 Ascend 新增 对接aclnn算子
GPU 无变更 不转测
CPU 无变更 注意:根据公司可信L4的要求,CPU算子不允许使用onednn库。 不转测
3 支持vmap 无变更
4 支持动态Shape 动态Shape 新增 支持动态shape
动态Rank 新增 支持动态shape
5 支持反向 bprop函数 无变更
复数支持 无变更 不支持
6 补齐资料 API映射 新增
接口中英文资料 新增
7 性能优化 CPU 无变更 不转测
GPU 无变更 GPU性能需要在V100-PCIE、V100-SXM2、3090等硬件上都进行验证 ,不转测
8 补齐与pytorch1.12的功能差异 空Tensor支持 无变更
inf、nan支持 无变更
0~8维支持 无变更 在友商支持的前提下,需要自验0~8维场景。
功能点XXX https://e.gitee.com/mind_spore/issues/table 中搜索算子名,可以查出该算子已知的缺失功能,一般是通过需求单在跟踪。
9 历史遗留问题解决 问题/需求单:#XXX 不少算子都会有一些历史遗留问题转成了需求,需要一并解决,并走给测试回归
10 门禁用例补齐 UT 新增 C++ UT指导https://e.gitee.com/mind_spore/dashboard?issue=I7EG0H
ST 新增
11 支持 MS Adapter 可选 不转测
12 自动并行切分 可选 不转测

Background

1. 标杆情况

2. MindSpore算子情况

  • 当前支持数据类型

    CPU:不转测
    GPU:不转测
    Ascend:INT8、UINT8、INT16、INT32、INT64、FLOAT16、FLOAT32、DOUBLE、BFLOAT16(910B)
    
  • 三后端统一后算子支持(标杆支持+三后端并集)
    INT8、UINT8、INT16、INT32、INT64、FLOAT16、FLOAT32、DOUBLE、BFLOAT16(910B)

Introduction

1. 功能介绍

沿给定维度查找 k 个最大或最小元素和对应的索引。

2. 接口描述(nn/functional接口需要与标杆保持一致)

  • functional接口
    mindspore/python/mindspore/ops/function/array_func.py
    mindspore/python/mindspore/mint/init.py

    def topk_ext(input, k, dim=-1, largest=True, sorted=True): -> (tensor, tensor):
        return _get_cache_prim(ops.auto_generate.TopkExt)()(input, k, dim, largest, sorted)
    
    topk_ext -> mint.topk
    
  • 算子原语
    mindspore/ops/auto_generate/gen_ops_prim.py
    class TopkExt(Primitive):

    参数 类型 输入/输出/属性 说明
    input Tensor 输入
    k int64 输入
    dim int64 输入
    largest bool 输入
    sorted bool 输入
    output Tensor 输出

Tasks
PyBoost接口
动态Shape
静态图KernelByKernel
ACLNN算子:
aclnnTopk

#I6FYA2:众筹需求模板:【众筹】存量算子 xxx 功能补齐(如数据类型补齐)及性能优化:众筹需求模板:【众筹】存量算子 xxx 功能补齐(如数据类型补齐)及性能优化

评论 (4)

TuDouNi 创建了Bug-Report

Please assign maintainer to check this issue.
请为此issue分配处理人。
@TuDouNi

感谢您的提问,您可以评论//mindspore-assistant更快获取帮助:

  1. 如果您刚刚接触MindSpore,或许您可以在教程找到答案
  2. 如果您是资深Pytorch用户,您或许需要:
  1. 如果您遇到动态图问题,可以设置set_context(pynative_synchronize=True)查看报错栈协助定位
  2. 模型精度调优问题可参考官网调优指南
  3. 如果您反馈的是框架BUG,请确认您在ISSUE中提供了MindSpore版本、使用的后端类型(CPU、GPU、Ascend)、环境、训练的代码官方链接以及可以复现报错的代码的启动方式等必要的定位信息
  4. 如果您已经定位出问题根因,欢迎提交PR参与MindSpore开源社区,我们会尽快review
TuDouNi 修改了描述
TuDouNi 修改了描述
TuDouNi 修改了描述
TuDouNi 修改了描述
TuDouNi 修改了描述
TuDouNi 修改了描述
TuDouNi 修改了描述
  1. 在做topk的维度有相同数字的,第二个index输出和torch_npu的结果一致,和torch_cpu的结果可能会有差别,并且由于第二个输出参与反向计算,反向的计算结果也有差别

  2. inf/nan的计算结果,910A和910B有差别, 910B和torch_cpu计算结果一致,不包括1的场景

TuDouNi 修改了描述
TuDouNi 修改了描述

上面的问题和海思算子确认已有CCB结论,CCB截图贴在转测报告中了

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
Python
1
https://gitee.com/mindspore/mindspore.git
git@gitee.com:mindspore/mindspore.git
mindspore
mindspore
mindspore

搜索帮助