From 15dadd5ac72be0f218f26ceb5809aec52f047413 Mon Sep 17 00:00:00 2001 From: Alexandra Sidorova Date: Fri, 31 Jan 2025 09:08:14 +0400 Subject: [PATCH] [Snippets][CPU] Applied Ivan comment --- .../snippets/x64/kernel_executors/brgemm_base.cpp | 2 +- .../snippets/x64/kernel_executors/brgemm_copy_b.cpp | 2 +- .../transformations/snippets/x64/op/brgemm_utils.hpp | 11 ----------- .../pass/lowered/adjust_brgemm_copy_b_loop_ports.cpp | 3 ++- .../x64/pass/lowered/external_repacking_adjuster.cpp | 3 ++- 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_base.cpp b/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_base.cpp index 4b7d71fd3a879e..c303eb8efd6462 100644 --- a/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_base.cpp +++ b/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_base.cpp @@ -258,7 +258,7 @@ void BrgemmBaseKernelExecutor::update_config(const ov::snippets::lowered::Expres OV_CPU_JIT_EMITTER_ASSERT(brgemm_node, "Got invalid node type in update_config"); // In case of data repacking LDB is chosen in accordance with repacking buffer size if (with_repacking(brgemm_node->get_type())) { - LDB = DIM_CAST(brgemm_utils::repacking::compute_LDB(LDB, brgemm_node->get_input_element_type(1))); + LDB = DIM_CAST(brgemm_utils::repacking::compute_repacked_n_dim(LDB, brgemm_node->get_input_element_type(1))); } config.update(DIM_CAST(M), DIM_CAST(N), DIM_CAST(K), LDA, LDB, LDC, beta); diff --git a/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_copy_b.cpp b/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_copy_b.cpp index a9ae49ba30fdef..652be88a1827b6 100644 --- a/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_copy_b.cpp +++ b/src/plugins/intel_cpu/src/emitters/snippets/x64/kernel_executors/brgemm_copy_b.cpp @@ -371,7 +371,7 @@ void BrgemmCopyBKernelExecutor::update_config(const ov::snippets::lowered::Expre init(N_dim, N_blk, 0); const auto& brg_weight_etype = expr->get_node()->get_input_element_type(0); - const auto LDB = brgemm_utils::repacking::compute_LDB(N_dim, brg_weight_etype); + const auto LDB = brgemm_utils::repacking::compute_repacked_n_dim(N_dim, brg_weight_etype); const auto copy_B_wei_stride = ov::snippets::utils::get_dim_stride(expr->get_input_port(0), config.is_transposed_B() ? 0 : 1) * brg_weight_etype.size(); diff --git a/src/plugins/intel_cpu/src/transformations/snippets/x64/op/brgemm_utils.hpp b/src/plugins/intel_cpu/src/transformations/snippets/x64/op/brgemm_utils.hpp index 0968202cb798c9..ee956527208ec0 100644 --- a/src/plugins/intel_cpu/src/transformations/snippets/x64/op/brgemm_utils.hpp +++ b/src/plugins/intel_cpu/src/transformations/snippets/x64/op/brgemm_utils.hpp @@ -68,17 +68,6 @@ template < inline T compute_repacked_n_dim(T n, const ov::element::Type& precision) { return ov::snippets::utils::rnd_up(n, static_cast(compute_inner_n_block(precision))); } -/** - * @brief Computes leading dimension (LDB) which must be used in brgemm and brgemm_copy_b emitters - * @param n_block N block size shared between BrgemmCPU and BrgemmCopyB node - * @param precision tensor precision - */ -template < - typename T, - typename = typename std::enable_if<(std::is_same::value || std::is_same::value), bool>::type> -inline T compute_LDB(T n_block, const ov::element::Type& precision) { - return compute_repacked_n_dim(n_block, precision); -} /** * @brief Retrieves the expression pointer for the brgemm_copy_b expression corresponding to the given BrgemmCPU * expression. diff --git a/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/adjust_brgemm_copy_b_loop_ports.cpp b/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/adjust_brgemm_copy_b_loop_ports.cpp index f283d05881d24f..e0d92ed7e571cd 100644 --- a/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/adjust_brgemm_copy_b_loop_ports.cpp +++ b/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/adjust_brgemm_copy_b_loop_ports.cpp @@ -35,7 +35,8 @@ bool pass::AdjustBrgemmCopyBLoopPorts::update_loop_info( // K blocking loop: account for zero padding if (loop_port.get_dim_idx() == 1) { const auto ptr_incr = loop_desc.ptr_increment; - const auto blocked_shape_ptr_inc = brgemm_utils::repacking::compute_LDB(ptr_incr, precision); + const auto blocked_shape_ptr_inc = + brgemm_utils::repacking::compute_repacked_n_dim(ptr_incr, precision); if (ptr_incr != 0 && ptr_incr != blocked_shape_ptr_inc) { loop_desc.ptr_increment = blocked_shape_ptr_inc; OPENVINO_ASSERT(loop_desc.finalization_offset % ptr_incr == 0, diff --git a/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/external_repacking_adjuster.cpp b/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/external_repacking_adjuster.cpp index 1c46c79f55eb4b..ad382d90840161 100644 --- a/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/external_repacking_adjuster.cpp +++ b/src/plugins/intel_cpu/src/transformations/snippets/x64/pass/lowered/external_repacking_adjuster.cpp @@ -73,7 +73,8 @@ void BrgemmExternalRepackingAdjuster::update_kernel(const RepackExecutorPtr& exe auto config = static_cast(generic_config.get()); const auto idx = config->is_transposed_B() ? 0 : 1; const auto copy_wei_stride = ov::snippets::utils::get_dim_in_stride(shape, layout, idx) * prc.size(); - config->update(N, N, K, K, copy_wei_stride, brgemm_utils::repacking::compute_LDB(N, prc)); + const auto LDB = brgemm_utils::repacking::compute_repacked_n_dim(N, prc); + config->update(N, N, K, K, copy_wei_stride, LDB); executor->update_by_config(*config); }