From fcc8a8779a84dbfa741ac57e093f278928b6c753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E7=A8=8B?= Date: Thu, 24 Apr 2025 03:47:18 +0000 Subject: [PATCH 1/2] bugfix for bmm tilling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 彭程 --- impl/matmul/tiling/matmul_tiling_algorithm.cpp | 5 ++--- impl/matmul/tiling/matmul_tiling_base.cpp | 1 + lib/matmul/matmul_tiling_base.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/impl/matmul/tiling/matmul_tiling_algorithm.cpp b/impl/matmul/tiling/matmul_tiling_algorithm.cpp index c0091946..510519e5 100644 --- a/impl/matmul/tiling/matmul_tiling_algorithm.cpp +++ b/impl/matmul/tiling/matmul_tiling_algorithm.cpp @@ -2283,11 +2283,10 @@ bool MatmulTilingAlgorithm::CheckFinaleParams(const CoreStatusPack& coreStatus) } int dateDtypeSize = DTYPE_BIT_TAB.at(tilingIns_->aType_.dataType); - if (tilingIns_->tiling_.get_BatchNum() > 0 && + if (!tilingIns_->isBMNKBmm && tilingIns_->tiling_.get_BatchNum() > 0 && ((tilingIns_->tiling_.get_singleCoreM() * tilingIns_->tiling_.get_singleCoreK() + tilingIns_->tiling_.get_singleCoreN() * tilingIns_->tiling_.get_singleCoreK()) * - tilingIns_->tiling_.get_BatchNum() * dateDtypeSize / BITS_PER_BYTE + - tilingIns_->tiling_.get_singleCoreN() * tilingIns_->tiling_.get_BatchNum() * dateDtypeSize / BITS_PER_BYTE > + tilingIns_->tiling_.get_BatchNum() * dateDtypeSize / BITS_PER_BYTE + biasL1Size > tilingIns_->bufferPool_.l1Size)) { TILING_LOG_WARNING("a/b matrix size of batch mm should less then L1Size"); return false; diff --git a/impl/matmul/tiling/matmul_tiling_base.cpp b/impl/matmul/tiling/matmul_tiling_base.cpp index c4011e1a..40dadd83 100644 --- a/impl/matmul/tiling/matmul_tiling_base.cpp +++ b/impl/matmul/tiling/matmul_tiling_base.cpp @@ -401,6 +401,7 @@ int32_t MatmulApiTilingBase::SetBatchInfoForNormal(int32_t batchA, int32_t batch this->cLayoutInfoN = 1; this->cLayoutInfoG = 1; this->cLayoutInfoS2 = n; + this->isBMNKBmm = true; return 0; } diff --git a/lib/matmul/matmul_tiling_base.h b/lib/matmul/matmul_tiling_base.h index b6708ce5..ccca8905 100644 --- a/lib/matmul/matmul_tiling_base.h +++ b/lib/matmul/matmul_tiling_base.h @@ -335,6 +335,7 @@ public: int32_t mmConfigType = 1; // 0: Norm; 1: MDL bool enableL1CacheUB = false; bool enVecND2NZ = false; + bool isBMNKBmm = false; protected: virtual int64_t Compute() = 0; -- Gitee From f430e840d006a7597a87b798d0a8021aa8669d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E7=A8=8B?= Date: Sun, 27 Apr 2025 09:20:55 +0000 Subject: [PATCH 2/2] update impl/matmul/tiling/matmul_tiling_algorithm.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 彭程 --- impl/matmul/tiling/matmul_tiling_algorithm.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/impl/matmul/tiling/matmul_tiling_algorithm.cpp b/impl/matmul/tiling/matmul_tiling_algorithm.cpp index 510519e5..7d1fa79f 100644 --- a/impl/matmul/tiling/matmul_tiling_algorithm.cpp +++ b/impl/matmul/tiling/matmul_tiling_algorithm.cpp @@ -2286,7 +2286,8 @@ bool MatmulTilingAlgorithm::CheckFinaleParams(const CoreStatusPack& coreStatus) if (!tilingIns_->isBMNKBmm && tilingIns_->tiling_.get_BatchNum() > 0 && ((tilingIns_->tiling_.get_singleCoreM() * tilingIns_->tiling_.get_singleCoreK() + tilingIns_->tiling_.get_singleCoreN() * tilingIns_->tiling_.get_singleCoreK()) * - tilingIns_->tiling_.get_BatchNum() * dateDtypeSize / BITS_PER_BYTE + biasL1Size > + tilingIns_->tiling_.get_BatchNum() * dateDtypeSize / BITS_PER_BYTE + + tilingIns_->tiling_.get_singleCoreN() * tilingIns_->tiling_.get_BatchNum() * dateDtypeSize / BITS_PER_BYTE > tilingIns_->bufferPool_.l1Size)) { TILING_LOG_WARNING("a/b matrix size of batch mm should less then L1Size"); return false; -- Gitee