@@ -177,6 +177,15 @@ std::vector<CPUSpecificParams> filterSpecificParams_Brgemm(bool tryBrgAVX2 = fal
177177 return specificParams;
178178}
179179
180+ std::vector<CPUSpecificParams> filterSpecificParams_Brgemm_Small_K () {
181+ std::vector<CPUSpecificParams> specificParams;
182+ if (with_cpu_x86_avx512_core ()) {
183+ specificParams.push_back (CPUSpecificParams{{}, {}, {" jit_gemm" }, " jit_gemm" });
184+ }
185+
186+ return specificParams;
187+ }
188+
180189const std::vector<ShapeRelatedParams> IS2D_Brgemm_smoke = {
181190 // needed by 'IS2D_Brgconv1x1_smoke'
182191 {static_shapes_to_test_representation ({{1 , 120 }, {120 , 120 }}), {true , false }},
@@ -278,6 +287,25 @@ const auto testParams2D_Brgemm_FP16_smoke = ::testing::Combine(fullyConnectedPar
278287INSTANTIATE_TEST_SUITE_P (smoke_FC_2D_Brgemm, MatMulLayerCPUTest, testParams2D_Brgemm_smoke, MatMulLayerCPUTest::getTestCaseName);
279288INSTANTIATE_TEST_SUITE_P (smoke_FC_2D_Brgemm_FP16, MatMulLayerCPUTest, testParams2D_Brgemm_FP16_smoke, MatMulLayerCPUTest::getTestCaseName);
280289
290+ const std::vector<ShapeRelatedParams> IS_brgemm_small_k_smoke = {
291+ {static_shapes_to_test_representation ({{55 , 12 }, {12 , 55 }}), {false , true }},
292+ {static_shapes_to_test_representation ({{55 , 12 }, {12 , 55 }}), {true , true }},
293+ };
294+ const auto matMulBrgemmSmallKParams_smoke = ::testing::Combine(::testing::ValuesIn(IS_brgemm_small_k_smoke),
295+ ::testing::Values (ElementType::f32 ),
296+ ::testing::Values(ElementType::dynamic),
297+ ::testing::Values(ElementType::dynamic),
298+ ::testing::Values(utils::InputLayerType::PARAMETER),
299+ ::testing::Values(ov::test::utils::DEVICE_CPU),
300+ ::testing::ValuesIn(filterAdditionalConfig_Brgemm()));
301+
302+ const auto testBrgemmSmallKParams_smoke = ::testing::Combine(matMulBrgemmSmallKParams_smoke,
303+ ::testing::Values (MatMulNodeType::MatMul),
304+ ::testing::ValuesIn(matmulFusingParams()),
305+ ::testing::ValuesIn(filterSpecificParams_Brgemm_Small_K()));
306+
307+ INSTANTIATE_TEST_SUITE_P (smoke_MM_Brgemm_Small_K_Static, MatMulLayerCPUTest, testBrgemmSmallKParams_smoke, MatMulLayerCPUTest::getTestCaseName);
308+
281309const std::vector<ShapeRelatedParams> IS_brgemm_smoke = {
282310 {static_shapes_to_test_representation ({{1 , 2 , 32 , 120 }, {120 , 5 }}), {false , false }},
283311 {static_shapes_to_test_representation ({{1 , 2 , 32 , 120 }, {120 , 5 }}), {true , false }},
@@ -287,9 +315,6 @@ const std::vector<ShapeRelatedParams> IS_brgemm_smoke = {
287315
288316 {static_shapes_to_test_representation ({{10 , 10 , 10 }, {10 , 10 , 10 }}), {false , false }},
289317 {static_shapes_to_test_representation ({{10 , 10 , 10 }, {10 , 10 , 10 }}), {true , false }},
290-
291- {static_shapes_to_test_representation ({{55 , 12 }, {12 , 55 }}), {false , true }},
292- {static_shapes_to_test_representation ({{55 , 12 }, {12 , 55 }}), {true , true }},
293318};
294319
295320const auto matMulBrgemmParams_smoke = ::testing::Combine(::testing::ValuesIn(IS_brgemm_smoke),
@@ -366,21 +391,39 @@ const auto testBrgemmParams_FP16_nightly = ::testing::Combine(matMulBrgemmParams
366391
367392INSTANTIATE_TEST_SUITE_P (nightly_MM_Brgemm_Static_FP16, MatMulLayerCPUTest, testBrgemmParams_FP16_nightly, MatMulLayerCPUTest::getTestCaseName);
368393
394+ const std::vector<ShapeRelatedParams> IS_Brgemm_Small_K_Dynamic = {
395+ {
396+ {
397+ {{-1 , 256 }, {{1 , 256 }}},
398+ {{256 , 384 }, {{256 , 384 }}}
399+ },
400+ {false , false }
401+ },
402+ {
403+ {
404+ {{-1 , -1 }, {{55 , 12 }, {33 , 7 }}},
405+ {{-1 , -1 }, {{12 , 55 }, {7 , 33 }}}
406+ },
407+ {false , false }
408+ },
409+ };
410+
411+ const auto matMulBrgemmSmallKParamsDynamic = ::testing::Combine(::testing::ValuesIn(IS_Brgemm_Small_K_Dynamic),
412+ ::testing::Values (ElementType::f32 ),
413+ ::testing::Values(ElementType::dynamic),
414+ ::testing::Values(ElementType::dynamic),
415+ ::testing::Values(utils::InputLayerType::PARAMETER),
416+ ::testing::Values(ov::test::utils::DEVICE_CPU),
417+ ::testing::ValuesIn(filterAdditionalConfig_Brgemm()));
418+
419+ const auto testBrgemmSmallKParamsDynamic = ::testing::Combine(matMulBrgemmSmallKParamsDynamic,
420+ ::testing::Values (MatMulNodeType::MatMul),
421+ ::testing::Values(emptyFusingSpec),
422+ ::testing::ValuesIn(filterSpecificParams_Brgemm_Small_K()));
423+
424+ INSTANTIATE_TEST_SUITE_P (smoke_MM_Brgemm_Small_K_Dynamic, MatMulLayerCPUTest, testBrgemmSmallKParamsDynamic, MatMulLayerCPUTest::getTestCaseName);
425+
369426const std::vector<ShapeRelatedParams> IS_Brgemm_Dynamic = {
370- {
371- {
372- {{-1 , 256 }, {{1 , 256 }}},
373- {{256 , 384 }, {{256 , 384 }}}
374- },
375- {false , false }
376- },
377- {
378- {
379- {{-1 , -1 }, {{55 , 12 }, {33 , 7 }}},
380- {{-1 , -1 }, {{12 , 55 }, {7 , 33 }}}
381- },
382- {false , false }
383- },
384427 {
385428 {
386429 {{-1 , -1 , -1 , -1 }, {{1 , 2 , 32 , 60 }, {1 , 2 , 32 , 30 }}},
@@ -455,14 +498,17 @@ const auto testBrgemmParamsDynamic_FP16 = ::testing::Combine(matMulBrgemmParamsD
455498
456499INSTANTIATE_TEST_SUITE_P (smoke_MM_Brgemm_Dynamic_FP16, MatMulLayerCPUTest, testBrgemmParamsDynamic_FP16, MatMulLayerCPUTest::getTestCaseName);
457500
458- const std::vector<ShapeRelatedParams> IS_Dynamic_Fusing = {
501+ const std::vector<ShapeRelatedParams> IS_Dynamic_Fusing_Small_K = {
459502 {
460503 { // dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...}
461504 {{-1 , -1 }, {{16 , 12 }, {33 , 7 }, {16 , 12 }}}, // input 0
462505 {{-1 , 33 }, {{12 , 33 }, {7 , 33 }, {12 , 33 }}} // input 1
463506 },
464507 {false , false }
465508 },
509+ };
510+
511+ const std::vector<ShapeRelatedParams> IS_Dynamic_Fusing = {
466512 {
467513 { // dynamic case description each pair per each input has {{dynamic shape}, {{static shape case1}, {static shape case2}, ...}
468514 {{-1 , -1 , -1 , -1 }, {{1 , 2 , 32 , 60 }, {1 , 2 , 32 , 30 }}}, // input 0
@@ -534,6 +580,21 @@ const auto testParamsDynamicFusing_FP16 = ::testing::Combine(matMulParamsDynamic
534580
535581INSTANTIATE_TEST_SUITE_P (smoke_MM_Dynamic_Fusing_FP16, MatMulLayerCPUTest, testParamsDynamicFusing_FP16, MatMulLayerCPUTest::getTestCaseName);
536582
583+ const auto matMulParamsBrgemmSmallKDynamicFusing = ::testing::Combine(::testing::ValuesIn(IS_Dynamic_Fusing_Small_K),
584+ ::testing::Values (ElementType::f32 ),
585+ ::testing::Values(ElementType::dynamic),
586+ ::testing::Values(ElementType::dynamic),
587+ ::testing::Values(utils::InputLayerType::PARAMETER),
588+ ::testing::Values(ov::test::utils::DEVICE_CPU),
589+ ::testing::ValuesIn(filterAdditionalConfig_Brgemm()));
590+
591+ const auto testParamsBrgemmSmallKDynamicFusing = ::testing::Combine(matMulParamsBrgemmSmallKDynamicFusing,
592+ ::testing::Values (MatMulNodeType::MatMul),
593+ ::testing::ValuesIn(matmulFusingParams()),
594+ ::testing::ValuesIn(filterSpecificParams_Brgemm_Small_K()));
595+
596+ INSTANTIATE_TEST_SUITE_P (smoke_MM_Brgemm_Small_K_Dynamic_Fusing, MatMulLayerCPUTest, testParamsBrgemmSmallKDynamicFusing, MatMulLayerCPUTest::getTestCaseName);
597+
537598const auto matMulParamsBrgemmDynamicFusing = ::testing::Combine(::testing::ValuesIn(IS_Dynamic_Fusing),
538599 ::testing::Values (ElementType::f32 ),
539600 ::testing::Values(ElementType::dynamic),
0 commit comments