/** * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /*! * \file tikcpp_check_util.h * \brief */ #ifndef ASCENDC_CHECK_UTIL_H #define ASCENDC_CHECK_UTIL_H #if __CCE_KT_TEST__ #include #include "kernel_utils.h" namespace AscendC { namespace check { struct MmadApiParams { MmadApiParams() {} MmadApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn, uint16_t mIn, uint16_t nIn, uint16_t kIn, bool isBiasIn, int32_t fmOffsetIn, bool enSsparseIn, bool enWinogradAIn, bool enWinogradBIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; m = mIn; n = nIn; k = kIn; isBias = isBiasIn; fmOffset = fmOffsetIn; enSsparse = enSsparseIn; enWinogradA = enWinogradAIn; enWinogradB = enWinogradBIn; } MmadApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint64_t src2AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, uint32_t src2DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint64_t src2SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn, uint8_t src2PosIn, uint16_t mIn, uint16_t nIn, uint16_t kIn, bool isBiasIn, int32_t fmOffsetIn, bool enSsparseIn, bool enWinogradAIn, bool enWinogradBIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; src2Addr = src2AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; src2DtypeBytes = src2DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; src2Size = src2SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; src2Pos = src2PosIn; m = mIn; n = nIn; k = kIn; isBias = isBiasIn; fmOffset = fmOffsetIn; enSsparse = enSsparseIn; enWinogradA = enWinogradAIn; enWinogradB = enWinogradBIn; } uint64_t dstAddr = 0; uint64_t src0Addr = 0; uint64_t src1Addr = 0; uint64_t src2Addr = 0; uint32_t dstDtypeBytes = 0; uint32_t src0DtypeBytes = 0; uint32_t src1DtypeBytes = 0; uint32_t src2DtypeBytes = 0; uint64_t dstSize = 0; uint64_t src0Size = 0; uint64_t src1Size = 0; uint64_t src2Size = 0; uint8_t dstPos = 0; uint8_t src0Pos = 0; uint8_t src1Pos = 0; uint8_t src2Pos = 0; uint16_t m = 0; uint16_t n = 0; uint16_t k = 0; // Indicates whether to accumulate the initial matrix, 0: matrix multiplication, 1: matrix multiplication and // addition bool isBias = false; // Left matrix offset int32_t fmOffset = 0; // Enable the structured sparse feature, default value is false bool enSsparse = false; // Indicates whether matrix a is generated by winograd_feature_map_transform, default value is false; bool enWinogradA = false; // Indicates whether matrix b is generated by winograd_feature_map_transform, default value is false; bool enWinogradB = false; }; struct VecReduceApiParams { VecReduceApiParams() {} VecReduceApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, int32_t repeatIn, uint16_t dstRepStrideIn, uint16_t srcBlkStrideIn, uint16_t srcRepStrideIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint8_t dstPosIn, uint8_t src0PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; repeatTimes = repeatIn; dstRepeatStride = dstRepStrideIn; src0BlockStride = srcBlkStrideIn; src0RepearStride = srcRepStrideIn; dstSize = dstSizeIn; src0Size = src0SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; } VecReduceApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, int32_t repeatIn, uint32_t calCountIn, bool calIndexIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; repeatTimes = repeatIn; calCount = calCountIn; calIndex = calIndexIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; } VecReduceApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, int32_t repeatIn, uint32_t calCountIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; repeatTimes = repeatIn; calCount = calCountIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; } VecReduceApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, int32_t repeatIn, bool calIndexIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn, uint16_t src0RepearStrideIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; repeatTimes = repeatIn; calIndex = calIndexIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; src0RepearStride = src0RepearStrideIn; } VecReduceApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, int32_t repeatIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn, uint16_t src0RepearStrideIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; repeatTimes = repeatIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; src0RepearStride = src0RepearStrideIn; } uint64_t dstAddr = 0; uint64_t src0Addr = 0; uint64_t src1Addr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 0; uint16_t src0BlockStride = 0; uint16_t src1BlockStride = 0; uint16_t dstRepeatStride = 0; uint16_t src0RepearStride = 0; uint16_t src1RepeatStride = 0; uint32_t dstDtypeBytes = 0; uint32_t src0DtypeBytes = 0; uint32_t src1DtypeBytes = 0; uint64_t dstSize = 0; uint64_t src0Size = 0; uint64_t src1Size = 0; uint8_t dstPos = 0; uint8_t src0Pos = 0; uint8_t src1Pos = 0; uint32_t calCount = 0; bool calIndex = 0; }; struct CopyApiParams { CopyApiParams() {} CopyApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint8_t repeatIn, uint16_t dstStrideIn, uint16_t srcStrideIn, uint16_t dstRepeatSizeIn, uint16_t srcRepeatSizeIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; repeatTimes = repeatIn; dstStride = dstStrideIn; srcStride = srcStrideIn; dstRepeatSize = dstRepeatSizeIn; srcRepeatSize = srcRepeatSizeIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint8_t repeatTimes = 0; uint16_t dstStride = 0; uint16_t srcStride = 0; uint16_t dstRepeatSize = 0; uint16_t srcRepeatSize = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; }; struct DataCopyApiParams { DataCopyApiParams() {} DataCopyApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint8_t dstPosIn, uint8_t srcPosIn, uint16_t blockCountIn, uint16_t blockLenIn, uint16_t srcStrideIn, uint16_t dstStrideIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstPos = dstPosIn; srcPos = srcPosIn; blockCount = blockCountIn; blockLen = blockLenIn; srcStride = srcStrideIn; dstStride = dstStrideIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; uint16_t blockCount = 0; uint16_t blockLen = 0; uint16_t srcStride = 0; uint16_t dstStride = 0; }; struct DataCopyPadApiParams { DataCopyPadApiParams() {} DataCopyPadApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint8_t dstPosIn, uint8_t srcPosIn, uint16_t blockCountIn, uint16_t blockLenIn, uint16_t srcStrideIn, uint16_t dstStrideIn, bool isPadIn, uint8_t leftPaddingIn, uint8_t rightPaddingIn, uint64_t paddingValueIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstPos = dstPosIn; srcPos = srcPosIn; blockCount = blockCountIn; blockLen = blockLenIn; srcStride = srcStrideIn; dstStride = dstStrideIn; isPad = isPadIn; leftPadding = leftPaddingIn; rightPadding = rightPaddingIn; paddingValue = paddingValueIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; uint16_t blockCount = 0; uint16_t blockLen = 0; uint16_t srcStride = 0; uint16_t dstStride = 0; bool isPad = false; uint8_t leftPadding = 0; uint8_t rightPadding = 0; uint64_t paddingValue = 0; }; struct DataCopySliceApiParams { DataCopySliceApiParams() {} DataCopySliceApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t sizeIn, uint8_t posIn, uint32_t dimValueIn, uint32_t shapeDstIn[], uint32_t shapeSrcIn[], const SliceInfo dstSliceInfoIn[], const SliceInfo srcSliceInfoIn[], bool isGM2UBIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; sizeNum = sizeIn; pos = posIn; dimValue = dimValueIn; isGM2UB = isGM2UBIn; for (uint32_t i = 0; i < dimValueIn; i++) { srcShape[i] = shapeSrcIn[i]; dstShape[i] = shapeDstIn[i]; dstSliceInfo[i] = dstSliceInfoIn[i]; srcSliceInfo[i] = srcSliceInfoIn[i]; } } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t sizeNum = 0; uint8_t pos = 0; uint32_t dimValue = 0; bool isGM2UB = false; uint32_t srcShape[K_MAX_SHAPE_DIM]; uint32_t dstShape[K_MAX_SHAPE_DIM]; SliceInfo dstSliceInfo[K_MAX_SHAPE_DIM]; SliceInfo srcSliceInfo[K_MAX_SHAPE_DIM]; }; struct VecBinaryApiParams { VecBinaryApiParams() {} VecBinaryApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint8_t repeatIn, uint16_t dstBlockStrideIn, uint16_t src0BlockStrideIn, uint16_t src1BlockStrideIn, uint16_t dstRepeatStrideIn, uint16_t src0RepeatStrideIn, uint16_t src1RepeatStrideIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; repeatTimes = repeatIn; dstBlockStride = dstBlockStrideIn; src0BlockStride = src0BlockStrideIn; src1BlockStride = src1BlockStrideIn; dstRepeatStride = dstRepeatStrideIn; src0RepeatStride = src0RepeatStrideIn; src1RepeatStride = src1RepeatStrideIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; } VecBinaryApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn, uint32_t count) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; calCount = count; } uint64_t dstAddr = 0; uint64_t src0Addr = 0; uint64_t src1Addr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 0; uint16_t src0BlockStride = 0; uint16_t src1BlockStride = 0; uint16_t dstRepeatStride = 0; uint16_t src0RepeatStride = 0; uint16_t src1RepeatStride = 0; uint32_t dstDtypeBytes = 0; uint32_t src0DtypeBytes = 0; uint32_t src1DtypeBytes = 0; uint64_t dstSize = 0; uint64_t src0Size = 0; uint64_t src1Size = 0; uint8_t dstPos = 0; uint8_t src0Pos = 0; uint8_t src1Pos = 0; uint32_t calCount = 0; }; struct VecBinaryScalarApiParams { VecBinaryScalarApiParams() {} VecBinaryScalarApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint8_t repeatIn, uint16_t dstBlockStrideIn, uint16_t src0BlockStrideIn, uint16_t dstRepeatStrideIn, uint16_t src0RepeatStrideIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint8_t dstPosIn, uint8_t src0PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; repeatTimes = repeatIn; dstBlockStride = dstBlockStrideIn; src0BlockStride = src0BlockStrideIn; dstRepeatStride = dstRepeatStrideIn; src0RepeatStride = src0RepeatStrideIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; } VecBinaryScalarApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint32_t count) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; calCount = count; } uint64_t dstAddr = 0; uint64_t src0Addr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 0; uint16_t src0BlockStride = 0; uint16_t dstRepeatStride = 0; uint16_t src0RepeatStride = 0; uint32_t dstDtypeBytes = 0; uint32_t src0DtypeBytes = 0; uint64_t dstSize = 0; uint64_t src0Size = 0; uint8_t dstPos = 0; uint8_t src0Pos = 0; uint32_t calCount = 0; }; struct VecBroadCastApiParams { VecBroadCastApiParams() {} VecBroadCastApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint8_t repeatIn, uint16_t dstBlockStrideIn, uint16_t dstRepeatStrideIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; repeatTimes = repeatIn; dstBlockStride = dstBlockStrideIn; dstRepeatStride = dstRepeatStrideIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 0; uint16_t dstRepeatStride = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; }; struct VecBroadCastToMMApiParams { VecBroadCastToMMApiParams() {} VecBroadCastToMMApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn, uint32_t blockCountIn, uint8_t blockLenIn, uint8_t srcGapIn, uint8_t dstGapIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; blockCount = blockCountIn; blockLen = blockLenIn; srcGap = srcGapIn; dstGap = dstGapIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; uint32_t calCount = 0; uint32_t blockCount = 0; uint8_t blockLen = 0; uint8_t srcGap = 0; uint8_t dstGap = 0; }; struct CubeCreateCxMatrixApiParams { CubeCreateCxMatrixApiParams() {} CubeCreateCxMatrixApiParams(uint64_t dstAddrIn, uint32_t dstDtypeBytesIn, uint64_t dstSizeIn, uint8_t dstPosIn, int64_t repeatIn) { dstAddr = dstAddrIn; dstDtypeBytes = dstDtypeBytesIn; dstSize = dstSizeIn; dstPos = dstPosIn; repeat = repeatIn; } uint64_t dstAddr = 0; uint32_t dstDtypeBytes = 0; uint64_t dstSize = 0; uint8_t dstPos = 0; int32_t repeat = 0; }; struct VecGatherApiParams { VecGatherApiParams() {} VecGatherApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint64_t offsetAddrIn, uint8_t repeatIn, uint16_t dstBlockStrideIn, uint16_t dstRepeatStrideIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint32_t offsetDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint64_t offsetSizeIn, uint8_t dstPosIn, uint8_t srcPosIn, uint8_t offsetPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; offsetAddr = offsetAddrIn; repeatTimes = repeatIn; dstBlockStride = dstBlockStrideIn; dstRepeatStride = dstRepeatStrideIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; offsetDtypeBytes = offsetDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; offsetSize = offsetSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; offsetPos = offsetPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint64_t offsetAddr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 0; uint16_t dstRepeatStride = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint32_t offsetDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint64_t offsetSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; uint8_t offsetPos = 0; }; struct VecDupApiParams { VecDupApiParams() {} VecDupApiParams(uint64_t dstAddrIn, uint8_t repeatIn, uint16_t dstBlockStrideIn, uint16_t dstRepeatStrideIn, uint32_t dstDtypeBytesIn, uint64_t dstSizeIn, uint8_t dstPosIn) { dstAddr = dstAddrIn; repeatTimes = repeatIn; dstBlockStride = dstBlockStrideIn; dstRepeatStride = dstRepeatStrideIn; dstDtypeBytes = dstDtypeBytesIn; dstSize = dstSizeIn; dstPos = dstPosIn; } VecDupApiParams(uint64_t dstAddrIn, uint32_t dstDtypeBytesIn, uint64_t dstSizeIn, uint8_t dstPosIn, uint32_t count) { dstAddr = dstAddrIn; dstDtypeBytes = dstDtypeBytesIn; dstSize = dstSizeIn; dstPos = dstPosIn; calCount = count; } uint64_t dstAddr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 0; uint16_t dstRepeatStride = 0; uint32_t dstDtypeBytes = 0; uint64_t dstSize = 0; uint8_t dstPos = 0; uint32_t calCount = 0; }; struct VecTransposeApiParams { VecTransposeApiParams() {} VecTransposeApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint8_t repeatIn, uint16_t dstRepeatStrideIn, uint16_t srcRepeatStrideIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; repeatTimes = repeatIn; dstRepeatStride = dstRepeatStrideIn; srcRepeatStride = srcRepeatStrideIn; dstDtypeBytes = dstDtypeBytesIn; dstSize = dstSizeIn; dstPos = dstPosIn; srcDtypeBytes = srcDtypeBytesIn; srcSize = srcSizeIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint8_t repeatTimes = 0; uint16_t dstBlockStride = 1; uint16_t dstRepeatStride = 0; uint16_t srcBlockStride = 1; uint16_t srcRepeatStride = 0; uint32_t dstDtypeBytes = 0; uint64_t dstSize = 0; uint8_t dstPos = 0; uint32_t srcDtypeBytes = 0; uint64_t srcSize = 0; uint8_t srcPos = 0; }; struct VecProposalApiParams { VecProposalApiParams() {} VecProposalApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint8_t repeatIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint8_t dstPosIn, uint8_t src0PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; repeatTimes = repeatIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; } VecProposalApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, uint8_t repeatIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; repeatTimes = repeatIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; } VecProposalApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint8_t repeatIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint16_t validBitIn, const uint16_t elementLenIn[4], uint8_t srcIndexIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; repeatTimes = repeatIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; validBit = validBitIn; for (size_t i = 0; i < eleSize; i++) { elementLengths[i] = elementLenIn[i]; } srcIndex = srcIndexIn; } const uint32_t eleSize = 4; uint64_t dstAddr = 0; uint64_t src0Addr = 0; uint64_t src1Addr = 0; uint8_t repeatTimes = 0; uint32_t dstDtypeBytes = 0; uint32_t src0DtypeBytes = 0; uint32_t src1DtypeBytes = 0; uint64_t dstSize = 0; uint64_t src0Size = 0; uint64_t src1Size = 0; uint8_t dstPos = 0; uint8_t src0Pos = 0; uint8_t src1Pos = 0; uint16_t validBit = 0; uint16_t elementLengths[4]; uint8_t srcIndex = 0; }; struct LoadData2dApiParams { LoadData2dApiParams() {} LoadData2dApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint16_t startIndexIn, uint8_t repeatTimesIn, uint16_t srcStrideIn, uint8_t sidIn, uint16_t dstGapIn, bool ifTransposeIn, uint8_t addrModeIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; startIndex = startIndexIn; repeatTimes = repeatTimesIn; srcStride = srcStrideIn; sid = sidIn; dstGap = dstGapIn; ifTranspose = ifTransposeIn; addrMode = addrModeIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint16_t startIndex = 0; uint8_t repeatTimes = 0; uint16_t srcStride = 0; uint8_t sid = 0; uint16_t dstGap = 0; bool ifTranspose = false; uint8_t addrMode = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; }; struct LoadData3dv1ApiParams { LoadData3dv1ApiParams() {} LoadData3dv1ApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, const uint8_t padListIn[4], uint16_t l1HIn, uint16_t l1WIn, uint16_t c1IndexIn, uint8_t fetchFilterWIn, uint8_t fetchFilterHIn, uint16_t leftTopWIn, uint16_t leftTopHIn, uint8_t strideWIn, uint8_t strideHIn, uint8_t filterWIn, uint8_t filterHIn, uint8_t dilationFilterWIn, uint8_t dilationFilterHIn, uint8_t jumpStrideIn, uint8_t repeatModeIn, uint8_t repeatTimeIn, uint8_t cSizeIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; for (size_t i = 0; i < PAD_SIZE; ++i) { padList[i] = padListIn[i]; } l1H = l1HIn; l1W = l1WIn; c1Index = c1IndexIn; fetchFilterW = fetchFilterWIn; fetchFilterH = fetchFilterHIn; leftTopW = leftTopWIn; leftTopH = leftTopHIn; strideW = strideWIn; strideH = strideHIn; filterW = filterWIn; filterH = filterHIn; dilationFilterW = dilationFilterWIn; dilationFilterH = dilationFilterHIn; jumpStride = jumpStrideIn; repeatMode = repeatModeIn; repeatTime = repeatTimeIn; cSize = cSizeIn; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint8_t padList[4]; uint8_t strideW = 0; uint8_t strideH = 0; uint8_t filterW = 0; uint8_t filterH = 0; uint8_t dilationFilterW = 0; uint8_t dilationFilterH = 0; uint8_t jumpStride = 0; uint8_t repeatMode = 0; uint8_t repeatTime = 0; uint8_t cSize = 0; uint8_t fetchFilterW = 0; uint8_t fetchFilterH = 0; uint16_t l1H = 0; uint16_t l1W = 0; uint16_t c1Index = 0; int16_t leftTopW = 0; int16_t leftTopH = 0; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; }; struct LoadData3dv2ApiParams { LoadData3dv2ApiParams() {} LoadData3dv2ApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, const uint8_t padListIn[4], uint16_t l1HIn, uint16_t l1WIn, uint16_t channelSizeIn, uint16_t kExtensionIn, uint16_t mExtensionIn, uint16_t kStartPtIn, uint16_t mStartPtIn, uint8_t strideWIn, uint8_t strideHIn, uint8_t filterWIn, uint8_t filterHIn, uint8_t dilationFilterWIn, uint8_t dilationFilterHIn, bool enTransposeIn, bool enSmallKIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; for (size_t i = 0; i < PAD_SIZE; ++i) { padList[i] = padListIn[i]; } l1H = l1HIn; l1W = l1WIn; channelSize = channelSizeIn; kExtension = kExtensionIn; mExtension = mExtensionIn; kStartPt = kStartPtIn; mStartPt = mStartPtIn; strideW = strideWIn; strideH = strideHIn; filterW = filterWIn; filterH = filterHIn; dilationFilterW = dilationFilterWIn; dilationFilterH = dilationFilterHIn; enTranspose = enTransposeIn; enSmallK = enSmallKIn; filterSizeW = false; filterSizeH = false; fMatrixCtrl = false; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint8_t padList[4]; uint16_t l1H = 0; uint16_t l1W = 0; uint16_t channelSize = 0; uint16_t kExtension = 0; uint16_t mExtension = 0; uint16_t kStartPt = 0; uint16_t mStartPt = 0; uint8_t strideW = 0; uint8_t strideH = 0; uint8_t filterW = 0; uint8_t filterH = 0; uint8_t dilationFilterW = 0; uint8_t dilationFilterH = 0; bool enTranspose = false; bool enSmallK = false; bool filterSizeW = false; bool filterSizeH = false; bool fMatrixCtrl = false; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; }; struct LoadData3dv2ProApiParams { LoadData3dv2ProApiParams() {} LoadData3dv2ProApiParams(uint64_t dstAddrIn, uint64_t srcAddrIn, uint16_t channelSizeIn, uint16_t kExtensionIn, uint16_t mExtensionIn, uint16_t kStartPtIn, uint16_t mStartPtIn, uint8_t strideWIn, uint8_t strideHIn, uint8_t filterWIn, uint8_t filterHIn, uint8_t dilationFilterWIn, uint8_t dilationFilterHIn, bool enTransposeIn, bool enSmallKIn, uint32_t dstDtypeBytesIn, uint32_t srcDtypeBytesIn, uint64_t dstSizeIn, uint64_t srcSizeIn, uint8_t dstPosIn, uint8_t srcPosIn) { dstAddr = dstAddrIn; srcAddr = srcAddrIn; channelSize = channelSizeIn; kExtension = kExtensionIn; mExtension = mExtensionIn; kStartPt = kStartPtIn; mStartPt = mStartPtIn; strideW = strideWIn; strideH = strideHIn; filterW = filterWIn; filterH = filterHIn; dilationFilterW = dilationFilterWIn; dilationFilterH = dilationFilterHIn; enTranspose = enTransposeIn; enSmallK = enSmallKIn; filterSizeW = false; filterSizeH = false; fMatrixCtrl = false; dstDtypeBytes = dstDtypeBytesIn; srcDtypeBytes = srcDtypeBytesIn; dstSize = dstSizeIn; srcSize = srcSizeIn; dstPos = dstPosIn; srcPos = srcPosIn; } uint64_t dstAddr = 0; uint64_t srcAddr = 0; uint16_t channelSize = 0; uint16_t kExtension = 0; uint16_t mExtension = 0; uint16_t kStartPt = 0; uint16_t mStartPt = 0; uint8_t strideW = 0; uint8_t strideH = 0; uint8_t filterW = 0; uint8_t filterH = 0; uint8_t dilationFilterW = 0; uint8_t dilationFilterH = 0; bool enTranspose = false; bool enSmallK = false; bool filterSizeW = false; bool filterSizeH = false; bool fMatrixCtrl = false; uint32_t dstDtypeBytes = 0; uint32_t srcDtypeBytes = 0; uint64_t dstSize = 0; uint64_t srcSize = 0; uint8_t dstPos = 0; uint8_t srcPos = 0; }; struct LoadImageToL1ApiParams { __aicore__ LoadImageToL1ApiParams() { dstAddr = 0; horSize = 0; verSize = 0; horStartP = 0; verStartP = 0; sHorRes = 0; topPadSize = 0; botPadSize = 0; lPadSize = 0; rPadSize = 0; dstDtypeBytes = 0; dstSize = 0; dstPos = 0; } __aicore__ LoadImageToL1ApiParams(uint64_t dstAddrIn, uint16_t horSizeIn, uint16_t verSizeIn, uint16_t horStartPIn, uint16_t verStartPIn, uint16_t sHorResIn, uint8_t topPadSizeIn, uint8_t botPadSizeIn, uint16_t lPadSizeIn, uint16_t rPadSizeIn, uint32_t dstDtypeBytesIn, uint64_t dstSizeIn, uint8_t dstPosIn) { dstAddr = dstAddrIn; horSize = horSizeIn; verSize = verSizeIn; horStartP = horStartPIn; verStartP = verStartPIn; sHorRes = sHorResIn; topPadSize = topPadSizeIn; botPadSize = botPadSizeIn; lPadSize = lPadSizeIn; rPadSize = rPadSizeIn; dstDtypeBytes = dstDtypeBytesIn; dstSize = dstSizeIn; dstPos = dstPosIn; } uint64_t dstAddr = 0; uint16_t horSize = 0; uint16_t verSize = 0; uint16_t horStartP = 0; uint16_t verStartP = 0; uint16_t sHorRes = 0; uint8_t topPadSize = 0; uint8_t botPadSize = 0; uint16_t lPadSize = 0; uint16_t rPadSize = 0; uint32_t dstDtypeBytes = 0; uint64_t dstSize = 0; uint8_t dstPos = 0; }; const uint8_t BLKSTR = 1; const uint8_t REPSTR = 8; const uint16_t REPSIZE = 256; struct VecGatherMaskApiParams { VecGatherMaskApiParams() {} VecGatherMaskApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint64_t src1AddrIn, bool reduceModeIn, uint8_t src0BlockStrideIn, uint16_t repeatTimesIn, uint16_t src0RepeatStrideIn, uint16_t src1RepeatStrideIn, uint64_t rsvdCntIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint32_t src1DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint64_t src1SizeIn, uint8_t dstPosIn, uint8_t src0PosIn, uint8_t src1PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src1AddrIn; src1Pattern = 0; reduceMode = reduceModeIn; dstBlockStride = BLKSTR; src0BlockStride = src0BlockStrideIn; src1BlockStride = BLKSTR; repeatTimes = repeatTimesIn; dstRepeatStride = REPSTR; src0RepeatStride = src0RepeatStrideIn; src1RepeatStride = src1RepeatStrideIn; rsvdCnt = rsvdCntIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src1DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = src1SizeIn; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src1PosIn; } VecGatherMaskApiParams(uint64_t dstAddrIn, uint64_t src0AddrIn, uint8_t src1PatternIn, bool reduceModeIn, uint8_t src0BlockStrideIn, uint16_t repeatTimesIn, uint16_t src0RepeatStrideIn, uint16_t src1RepeatStrideIn, uint64_t rsvdCntIn, uint32_t dstDtypeBytesIn, uint32_t src0DtypeBytesIn, uint64_t dstSizeIn, uint64_t src0SizeIn, uint8_t dstPosIn, uint8_t src0PosIn) { dstAddr = dstAddrIn; src0Addr = src0AddrIn; src1Addr = src0AddrIn + REPSIZE * src0DtypeBytesIn; src1Pattern = src1PatternIn; reduceMode = reduceModeIn; dstBlockStride = BLKSTR; src0BlockStride = src0BlockStrideIn; src1BlockStride = BLKSTR; repeatTimes = repeatTimesIn; dstRepeatStride = REPSTR; src0RepeatStride = src0RepeatStrideIn; src1RepeatStride = src1RepeatStrideIn; rsvdCnt = rsvdCntIn; dstDtypeBytes = dstDtypeBytesIn; src0DtypeBytes = src0DtypeBytesIn; src1DtypeBytes = src0DtypeBytesIn; dstSize = dstSizeIn; src0Size = src0SizeIn; src1Size = 0; dstPos = dstPosIn; src0Pos = src0PosIn; src1Pos = src0PosIn; } uint64_t dstAddr = 0; uint64_t src0Addr = 0; uint64_t src1Addr = 0; bool reduceMode = 0; uint8_t dstBlockStride = 0; uint8_t src0BlockStride = 0; uint8_t src1BlockStride = 0; uint16_t repeatTimes = 0; uint16_t dstRepeatStride = 0; uint16_t src0RepeatStride = 0; uint16_t src1RepeatStride = 0; uint64_t rsvdCnt = 0; uint32_t dstDtypeBytes = 0; uint32_t src0DtypeBytes = 0; uint32_t src1DtypeBytes = 0; uint64_t dstSize = 0; uint64_t src0Size = 0; uint64_t src1Size = 0; uint8_t src1Pattern = 0; uint8_t dstPos = 0; uint8_t src0Pos = 0; uint8_t src1Pos = 0; }; bool CheckFuncVecBinaryImplForMaskArray(VecBinaryApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFuncVecBinaryImpl(VecBinaryApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFuncVecBinaryImpl(VecBinaryApiParams& chkParams, const char* intriName); bool CheckFuncCopyImplForMaskArray(CopyApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFuncCopyImpl(CopyApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFuncDataCopyImpl(DataCopyApiParams& chkParams, const char* intriName); bool CheckFuncDataCopyPadImpl(DataCopyPadApiParams& chkParams, const char* intriName); bool CheckFuncDataCopySliceImpl(DataCopySliceApiParams &chkParams, const char* intriName); bool CheckFuncMmadImpl(MmadApiParams& chkParams, const char* intriName); bool CheckFuncVecBinaryCmpImplForMaskArray(VecBinaryApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFuncVecBinaryCmpImpl(VecBinaryApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFuncVecBinaryCmpImpl(VecBinaryApiParams& chkParams, const char* intriName); bool CheckFuncVecBinaryScalarCmpImpl(VecBinaryScalarApiParams& chkParams, const char* intriName); bool CheckFuncVecBinaryScalarCmpImpl(VecBinaryScalarApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFunVecBinaryScalarImplForMaskArray(VecBinaryScalarApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFunVecBinaryScalarImpl(VecBinaryScalarApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFunVecBinaryScalarImpl(VecBinaryScalarApiParams& chkParams, const char* intriName); bool CheckFunDupImplForMaskArray(VecDupApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFunDupImpl(VecDupApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFunDupImpl(VecDupApiParams& chkParams, const char* intriName); bool CheckFunReduceImplForMaskArray(VecReduceApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFunReduceImpl(VecReduceApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFunReduceImpl(VecReduceApiParams& chkParams, const char* intriName); bool CheckFunReduceOtherImplForMaskArray(VecReduceApiParams& chkParams, const uint64_t mask[2], const char* intriName); bool CheckFunReduceOtherImpl(VecReduceApiParams& chkParams, const uint64_t mask, const char* intriName); bool CheckFunBcBImpl(VecBroadCastApiParams& chkParams, uint32_t dtypeSize, const char* intriName); bool CheckFunGatherImpl(VecGatherApiParams& chkParams, uint32_t dtypeSize, const char* intriName); bool CheckFunTransposeImpl(VecTransposeApiParams& chkParams, const char* intriName); bool CheckFunProposalImpl(VecProposalApiParams& chkParams, const char* intriName); bool CheckFuncLoadData2dImpl(LoadData2dApiParams& chkParams, const char* intriName); bool CheckFuncLoadData3dv1Impl(LoadData3dv1ApiParams& chkParams, const char* intriName); bool CheckFuncLoadData3dv2Impl(LoadData3dv2ApiParams& chkParams, const char* intriName); bool CheckFuncLoadData3dv2ProImpl(LoadData3dv2ProApiParams& chkParams, const char* intriName); bool CheckFuncLoadImageToL1Impl(LoadImageToL1ApiParams& chkParams, const char* intriName); bool CheckFuncBroadCastToMMImpl(VecBroadCastToMMApiParams& chkParams, const char* intriName); bool CheckFuncVecGatherMaskImpl(VecGatherMaskApiParams& chkParams, const uint32_t mask, const char* intriName); } // namespace check } // namespace AscendC #endif #endif