Skip to content

Commit 4ed6082

Browse files
authored
[Snippets] PropagateSubtensors pass removed (#32316)
### Details: `PropagateSubtensors` is a legacy error-prone (with hard workarounds and high complexity) lowered pass used for Brgemm subtensors propagation in static shapes scenario. Currently, this work is duplicated by Brgemm executor whose code is much simpler. This means, that `PropagateSubtensors` can be removed without any consequences ### Tickets: - *N\A*
1 parent 223048f commit 4ed6082

File tree

7 files changed

+18
-294
lines changed

7 files changed

+18
-294
lines changed

src/common/snippets/include/snippets/lowered/pass/brgemm_blocking.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ namespace ov::snippets::lowered::pass {
3232
class BrgemmBlockingBase {
3333
public:
3434
virtual ~BrgemmBlockingBase() = default;
35-
static snippets::lowered::SpecificIterationHandlers get_default_blocking_loop_handlers(size_t work_amount,
36-
size_t block_size);
3735

3836
protected:
3937
/**

src/common/snippets/include/snippets/lowered/pass/propagate_subtensors.hpp

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/common/snippets/src/lowered/pass/brgemm_blocking.cpp

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,13 @@
1717
#include "snippets/lowered/loop_info.hpp"
1818
#include "snippets/lowered/loop_manager.hpp"
1919
#include "snippets/lowered/loop_port.hpp"
20-
#include "snippets/lowered/pass/propagate_subtensors.hpp"
2120
#include "snippets/lowered/specific_loop_iter_handlers.hpp"
22-
#include "snippets/lowered/specific_loop_iter_types.hpp"
2321
#include "snippets/utils/utils.hpp"
2422

2523
namespace ov::snippets::lowered::pass {
2624
using namespace ov::snippets::utils;
2725
using PortType = LoopPort::Type;
2826

29-
lowered::SpecificIterationHandlers BrgemmBlockingBase::get_default_blocking_loop_handlers(size_t work_amount,
30-
size_t block_size) {
31-
OPENVINO_ASSERT(block_size != 0, "block size must be non zero");
32-
SpecificIterationHandlers handlers;
33-
const auto tail_size =
34-
utils::is_dynamic_value(work_amount) ? utils::get_dynamic_value<size_t>() : work_amount % block_size;
35-
if (tail_size != 0) {
36-
handlers.register_pass<lowered::SpecificLoopIterType::LAST_ITER, lowered::pass::UpdateSubtensors>(tail_size);
37-
}
38-
return handlers;
39-
}
40-
4127
bool BrgemmBlockingBase::blocking_loop_exists(const lowered::LoopManagerPtr& loop_manager,
4228
const ExpressionPtr& brgemm_expr) {
4329
auto check_port = [&](const LoopPort& p) {
@@ -87,14 +73,17 @@ void BrgemmBlockingBase::mark_k_blocking(const LoopManagerPtr& loop_manager,
8773
loop_manager->get_loop_info<UnifiedLoopInfo>(id)->set_handlers(get_k_loop_handlers(k, block_size_k));
8874
}
8975

90-
SpecificIterationHandlers BrgemmBlockingBase::get_m_loop_handlers(size_t work_amount, size_t block_size) const {
91-
return get_default_blocking_loop_handlers(work_amount, block_size);
76+
SpecificIterationHandlers BrgemmBlockingBase::get_m_loop_handlers([[maybe_unused]] size_t work_amount,
77+
[[maybe_unused]] size_t block_size) const {
78+
return {};
9279
}
93-
SpecificIterationHandlers BrgemmBlockingBase::get_n_loop_handlers(size_t work_amount, size_t block_size) const {
94-
return get_default_blocking_loop_handlers(work_amount, block_size);
80+
SpecificIterationHandlers BrgemmBlockingBase::get_n_loop_handlers([[maybe_unused]] size_t work_amount,
81+
[[maybe_unused]] size_t block_size) const {
82+
return {};
9583
}
96-
SpecificIterationHandlers BrgemmBlockingBase::get_k_loop_handlers(size_t work_amount, size_t block_size) const {
97-
return get_default_blocking_loop_handlers(work_amount, block_size);
84+
SpecificIterationHandlers BrgemmBlockingBase::get_k_loop_handlers([[maybe_unused]] size_t work_amount,
85+
[[maybe_unused]] size_t block_size) const {
86+
return {};
9887
}
9988

10089
std::tuple<size_t, size_t, size_t> BrgemmBlockingBase::get_blocking_params(const ExpressionPtr& brgemm_expr) const {

src/common/snippets/src/lowered/pass/propagate_subtensors.cpp

Lines changed: 0 additions & 221 deletions
This file was deleted.

src/common/snippets/src/lowered/specific_loop_iter_handlers.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <utility>
99

1010
#include "snippets/lowered/pass/iter_handler.hpp"
11-
#include "snippets/lowered/pass/propagate_subtensors.hpp"
1211
#include "snippets/utils/utils.hpp"
1312

1413
namespace ov::snippets::lowered {
@@ -28,7 +27,6 @@ SpecificIterationHandlers::SpecificIterationHandlers(size_t loop_work_amount,
2827
}
2928
if (last_iter_increment != 0) {
3029
m_last_iter_handlers.register_pass<lowered::pass::UpdateMemoryAccessCounts>(last_iter_increment);
31-
m_last_iter_handlers.register_pass<lowered::pass::UpdateSubtensors>(last_iter_increment);
3230
// Last Iterations of Loop processed last dimensions with Eltwise nodes inside should have increment = 1
3331
if (last_iter_increment == 1) {
3432
m_last_iter_handlers.register_pass<lowered::pass::SetLoopIncrementOne>();

src/plugins/intel_cpu/tests/unit/snippets_transformations/aarch64/lowered/gemm_blocking.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ void create_gemm_loop_infos(const LinearIRPtr& linear_ir,
3636
std::vector<LoopPort>{LoopPort::create<PortType::NotProcessed>(gemm_expr->get_input_port(0)),
3737
LoopPort::create<PortType::Incremented>(gemm_expr->get_input_port(1), 0)},
3838
std::vector<LoopPort>{LoopPort::create<PortType::Incremented>(gemm_expr->get_output_port(0), 0)},
39-
false,
40-
BrgemmBlockingBase::get_default_blocking_loop_handlers(n, n_blk)));
39+
false));
4140
}
4241
if (m_block) {
4342
std::vector<LoopPort> entries{LoopPort::create<PortType::Incremented>(gemm_expr->get_input_port(0), 1),
@@ -46,8 +45,7 @@ void create_gemm_loop_infos(const LinearIRPtr& linear_ir,
4645
std::make_shared<ov::snippets::lowered::UnifiedLoopInfo>(m, m_blk,
4746
entries,
4847
std::vector<LoopPort>{LoopPort::create<PortType::Incremented>(gemm_expr->get_output_port(0), 1)},
49-
false,
50-
BrgemmBlockingBase::get_default_blocking_loop_handlers(m, m_blk)));
48+
false));
5149
}
5250
}
5351

0 commit comments

Comments
 (0)