/** * This program is free software, you can redistribute it and/or modify it. * Copyright (c) 2025 Huawei Technologies Co., Ltd. * This file is a part of the CANN Open Software. * Licensed under CANN Open Software License Agreement Version 2.0 (the "License"). * Please refer to the License for details. You may not use this file except in compliance with the License. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. * See LICENSE in the root of the software repository for the full text of the License. */ /*! * \file causal_conv1d_def.cpp * \brief */ #include "register/op_def_registry.h" namespace ops { class CausalConv1d : public OpDef { public: explicit CausalConv1d(const char* name) : OpDef(name) { this->Input("x") .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_BF16}) .FormatList({ge::FORMAT_ND}) .AutoContiguous(); this->Input("weight") .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_BF16}) .FormatList({ge::FORMAT_ND}) .AutoContiguous(); this->Input("bias") .ParamType(OPTIONAL) .DataType({ge::DT_FLOAT16, ge::DT_BF16}) .FormatList({ge::FORMAT_ND}) .AutoContiguous(); this->Input("convStates") .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_BF16}) .FormatList({ge::FORMAT_ND}) .AutoContiguous(); this->Input("queryStartLoc") .ParamType(OPTIONAL) .DataTypeList({ge::DT_INT64}) .FormatList({ge::FORMAT_ND}) .ValueDepend(OPTIONAL) .AutoContiguous(); this->Input("cacheIndices") .ParamType(OPTIONAL) .DataTypeList({ge::DT_INT64}) .FormatList({ge::FORMAT_ND}) .ValueDepend(OPTIONAL) .AutoContiguous(); this->Input("initialStateMode") .ParamType(OPTIONAL) .DataTypeList({ge::DT_INT64}) .FormatList({ge::FORMAT_ND}) .ValueDepend(OPTIONAL) .AutoContiguous(); this->Input("numAcceptedTokens") .ParamType(OPTIONAL) .DataTypeList({ge::DT_INT64}) .FormatList({ge::FORMAT_ND}) .ValueDepend(OPTIONAL) .AutoContiguous(); this->Output("y") .ParamType(REQUIRED) .DataType({ge::DT_FLOAT16, ge::DT_BF16}) .FormatList({ge::FORMAT_ND}) .AutoContiguous(); this->Attr("activationMode").AttrType(OPTIONAL).Int(0); this->Attr("padSlotId").AttrType(OPTIONAL).Int(-1); this->Attr("runMode").AttrType(OPTIONAL).Int(0); OpAICoreConfig aicoreConfig; aicoreConfig.DynamicCompileStaticFlag(true) .DynamicFormatFlag(false) .DynamicRankSupportFlag(true) .DynamicShapeSupportFlag(true) .NeedCheckSupportFlag(false) .PrecisionReduceFlag(true) .ExtendCfgInfo("coreType.value", "AiCore"); this->AICore().AddConfig("ascend910b", aicoreConfig); this->AICore().AddConfig("ascend910_93", aicoreConfig); } }; OP_ADD(CausalConv1d); } // namespace ops