#include "register/op_def_registry.h" namespace ops { class DispatchLayout : public OpDef { public: explicit DispatchLayout(const char *name) : OpDef(name) { this->Input("topkIdx") .ParamType(REQUIRED) .DataType({ge::DT_INT64}) .Format({ge::FORMAT_ND}) .UnknownShapeFormat({ge::FORMAT_ND}); this->Attr("num_tokens").Int(); this->Attr("num_ranks").Int(); this->Attr("num_experts").Int(); this->Attr("num_topk").Int(); this->Output("numTokensPerRank") .ParamType(REQUIRED) .DataType({ge::DT_INT32}) .Format({ge::FORMAT_ND}) .UnknownShapeFormat({ge::FORMAT_ND}); this->Output("numTokensPerExpert") .ParamType(REQUIRED) .DataType({ge::DT_INT32}) .Format({ge::FORMAT_ND}) .UnknownShapeFormat({ge::FORMAT_ND}); this->Output("isTokenInRank") .ParamType(REQUIRED) .DataType({ge::DT_INT32}) .Format({ge::FORMAT_ND}) .UnknownShapeFormat({ge::FORMAT_ND}); OpAICoreConfig aicore_config; aicore_config.DynamicCompileStaticFlag(true) .DynamicFormatFlag(true) .DynamicRankSupportFlag(true) .DynamicShapeSupportFlag(true) .NeedCheckSupportFlag(false) .PrecisionReduceFlag(true) .ExtendCfgInfo("aclnnSupport.value", "support_aclnn") .ExtendCfgInfo("jitCompile.flag", "static_true") .ExtendCfgInfo("multiKernelSupportDynamicGraph.value", "multi_kernel"); this->AICore().AddConfig("ascend910_93", aicore_config); } }; OP_ADD(DispatchLayout); } // namespace ops