已关闭
[Requirement|需求建议]:AlltoAll Matmul算子新增comm_mode通信引擎参数 #2777
tangjn创建于  5月29日关闭于  6月6日
tangjn成员
5月29日 创建

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

Backgroud(背景信息)

MC2算子通信底层可以调用AICPU或CCU等通信引擎,但当前算子原型和ACLNN接口均未提供指定通信引擎的参数。当前算子通过芯片型号区分通信引擎。
通过在算子原型和ACLNN接口新增comm_mode入参,使得用户可以根据自身选择所需的通信引擎。

Benefit / Necessity (价值/作用)

用户可以根据自身需求选择所需的通信引擎。

Design(设计方案)

一、算子原型
算子原型将新增一个可选入参,类型为字符串,支持参数default,aicpu和ccu。默认参数为default。

this->Attr("comm_mode").AttrType(OPTIONAL).String("default");
二、ACLNN接口
将分别为量化和非量化的MatmulAlltoAll算子新增一个V2接口,相比于V1接口将新增一个类型为char*的入参commMode。

aclnnStatus aclnnAlltoAllMatmulV2GetWorkspaceSize(const aclTensor *x1, const aclTensor *x2, const aclTensor *biasOptional,
                                                           const aclIntArray* alltoAllAxesOptional, const char* group,
                                                           const char *commMode, bool transposeX1, bool transposeX2,
                                                           const aclTensor *output, const aclTensor *alltoAllOutOptional,
                                                           uint64_t *workspaceSize, aclOpExecutor **executor)
aclnnStatus aclnnAlltoAllMatmulV2(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)
aclnnStatus aclnnAlltoAllQuantMatmulV2GetWorkspaceSize(const aclTensor* x1, const aclTensor* x2,
    const aclTensor* biasOptional, const aclTensor* x1ScaleOptional, const aclTensor* x2Scale, const aclTensor* commScaleOptional,
    const aclTensor* x1OffsetOptional, const aclTensor* x2OffsetOptional, const char* group, const char *commMode, const aclIntArray* alltoAllAxesOptional,
    int64_t x1QuantMode, int64_t x2QuantMode, int64_t commQuantMode, int64_t commQuantDtype, int64_t x1QuantDtype, int64_t groupSize,
    bool transposeX1, bool transposeX2, const aclTensor* output, const aclTensor* alltoAllOutOptional, uint64_t* workspaceSize, aclOpExecutor** executor)
aclnnStatus aclnnAlltoAllQuantMatmulV2(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, aclrtStream stream)
likedislike
Ttangjn成员
5月29日 添加了label:requirement
huang-chuhong成员
5月29日 评论:

/assign @ZhouChuping

likedislike
CANN-robotCANN-robot成员
5月29日 将 ZhouChuping 设为负责人
Hhuang-chuhong成员
6月3日 将 tangjn 设为负责人
dbtzydbtzy成员
6月4日 关联了pull request:docs: 补充aclnnAlltoAllMatmul接口资料
CANN-robotCANN-robot成员
6月6日 关闭了 issue
CANN-robotCANN-robot成员
6月8日 添加了label:resolved