Skip to content

Commit 73f37bd

Browse files
committed
update jit_gemm primitive for small K
1 parent 05ba78e commit 73f37bd

File tree

1 file changed

+79
-18
lines changed
  • src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/instances/x64

1 file changed

+79
-18
lines changed

src/plugins/intel_cpu/tests/functional/custom/single_layer_tests/instances/x64/matmul.cpp

Lines changed: 79 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
180189
const 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
278287
INSTANTIATE_TEST_SUITE_P(smoke_FC_2D_Brgemm, MatMulLayerCPUTest, testParams2D_Brgemm_smoke, MatMulLayerCPUTest::getTestCaseName);
279288
INSTANTIATE_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+
281309
const 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

295320
const auto matMulBrgemmParams_smoke = ::testing::Combine(::testing::ValuesIn(IS_brgemm_smoke),
@@ -366,21 +391,39 @@ const auto testBrgemmParams_FP16_nightly = ::testing::Combine(matMulBrgemmParams
366391

367392
INSTANTIATE_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+
369426
const 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

456499
INSTANTIATE_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

535581
INSTANTIATE_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+
537598
const auto matMulParamsBrgemmDynamicFusing = ::testing::Combine(::testing::ValuesIn(IS_Dynamic_Fusing),
538599
::testing::Values(ElementType::f32),
539600
::testing::Values(ElementType::dynamic),

0 commit comments

Comments
 (0)