Skip to content

Commit

Permalink
[Snippets] FullyConnected test instances are added to matmul tests
Browse files Browse the repository at this point in the history
  • Loading branch information
v-Golubev committed Sep 10, 2024
1 parent 20a9974 commit 77f3cee
Show file tree
Hide file tree
Showing 12 changed files with 466 additions and 167 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -578,14 +578,14 @@ std::vector<std::string> disabledTestPatterns() {
retVector.emplace_back(R"(.*smoke_Snippets_AddSoftmax.*)");
retVector.emplace_back(R"(.*smoke_Snippets_TransposeSoftmaxEltwise.*)");
// Low-precision Matmuls are not supported by TPP yet
retVector.emplace_back(R"(.*smoke_Snippets_MatMulFQ.*)");
retVector.emplace_back(R"(.*smoke_Snippets_MatMulBiasQuantized.*)");
retVector.emplace_back(R"(.*smoke_Snippets_MatMulQuantized.*)");
retVector.emplace_back(R"(.*smoke_Snippets_MatMulQuantizedSoftmax.*)");
retVector.emplace_back(R"(.*smoke_Snippets_MHAINT8MatMul.*)");
retVector.emplace_back(R"(.*smoke_Snippets_MHAQuantMatMul0.*)");
retVector.emplace_back(R"(.*smoke_Snippets_MHAFQ.*)");
retVector.emplace_back(R"(.*smoke_Snippets_PrecisionPropagation_Convertion.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MatMulFQ.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MatMulBiasQuantized.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MatMulsQuantized.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MatMulsQuantizedSoftmax.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MHAINT8MatMul.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MHAQuantMatMul0.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*MHAFQ.*)");
retVector.emplace_back(R"(.*smoke_Snippets.*PrecisionPropagation_Convertion.*)");
retVector.emplace_back(R"(.*smoke_MHAQuant.*)");
#endif

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMult, MatMul,
::testing::Combine(
::testing::ValuesIn(input_shapes),
::testing::ValuesIn(precisions(false)),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // MatMul
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
Expand Down Expand Up @@ -104,6 +105,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_DynMatMul, MatMul,
::testing::Combine(
::testing::ValuesIn(input_shapes_dynamic),
::testing::ValuesIn(precisions(true)),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // MatMul
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
Expand All @@ -113,11 +115,40 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulFQ, MatMulFQ,
::testing::Combine(
::testing::ValuesIn(input_shapes),
::testing::ValuesIn(precisions()),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // MatMul;
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

std::vector<std::vector<ov::test::InputShape>> fc_input_shapes{
{
{PartialShape{-1, -1, -1, 2500}, {{2, 1, 32, 2500}, {1, 3, 80, 2500}}},
{{}, {{2500, 256}}}
},
};

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnected, MatMul,
::testing::Combine(
::testing::ValuesIn(input_shapes),
::testing::ValuesIn(precisions(false)),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // MatMul
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnectedFQ, MatMulFQ,
::testing::Combine(
::testing::ValuesIn(input_shapes),
::testing::ValuesIn(precisions()),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // MatMul;
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);


const auto& transpose_b_shapes = STATIC_SHAPES(
{{3, 3, 64, 64}, {3, 3, 64, 64}},
{{1, 1, 32, 128}, {1, 1, 64, 128}},
Expand All @@ -131,6 +162,24 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulTransposeB, MatMulTransposeB,
::testing::Combine(
::testing::ValuesIn(transpose_b_shapes),
::testing::ValuesIn(precisions(false)),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // MatMul
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

std::vector<std::vector<ov::test::InputShape>> fc_transpose_b_shapes{
{
{PartialShape{-1, -1, -1, 2500}, {{2, 1, 32, 2500}, {1, 3, 80, 2500}}},
{{}, {{256, 2500}}}
},
};

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnectedTransposeB, MatMulTransposeB,
::testing::Combine(
::testing::ValuesIn(fc_transpose_b_shapes),
::testing::ValuesIn(precisions(false)),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // MatMul
::testing::Values(1), // Tokenized MatMul
::testing::Values(ov::test::utils::DEVICE_CPU)),
Expand All @@ -141,6 +190,25 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulBias, MatMulBias,
::testing::ValuesIn(STATIC_SHAPES({{1, 2, 69, 43}, {2, 1, 43, 49}, {1, 1, 69, 49}},
{{1, 2, 95, 1023}, {1, 2, 1023, 255}, {1, 2, 95, 255}})),
::testing::ValuesIn(precisions(false)),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // Subgraph;
::testing::Values(1), // Tokenized MatMul+Bias
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

std::vector<std::vector<ov::test::InputShape>> fc_bias_shapes{
{
{PartialShape{-1, -1, -1, 2500}, {{2, 1, 32, 2500}, {1, 3, 80, 2500}}},
{{}, {{2500, 256}}},
{PartialShape{-1, -1, -1, 256}, {{1, 1, 32, 256}, {1, 1, 80, 256}}}
},
};

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnectedBias, MatMulBias,
::testing::Combine(
::testing::ValuesIn(fc_bias_shapes),
::testing::ValuesIn(precisions(false)),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // Subgraph;
::testing::Values(1), // Tokenized MatMul+Bias
::testing::Values(ov::test::utils::DEVICE_CPU)),
Expand All @@ -162,6 +230,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_DynMatMulBias, MatMulBias,
::testing::Combine(
::testing::ValuesIn(input_shapes_dynamic_bias),
::testing::ValuesIn(precisions(true)),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // Subgraph;
::testing::Values(1), // Tokenized MatMul+Bias
::testing::Values(ov::test::utils::DEVICE_CPU)),
Expand All @@ -172,29 +241,70 @@ INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulBiasQuantized, MatMulBiasQuantized
::testing::ValuesIn(STATIC_SHAPES({{1, 2, 69, 43}, {2, 1, 43, 49}, {1, 2, 1, 1}},
{{1, 2, 69, 43}, {2, 1, 43, 49}, {1, 2, 69, 49}})),
::testing::ValuesIn(quantized_precisions()),
::testing::Values(MatMulType::MatMul),
::testing::Values(1), // Subgraph
::testing::Values(1), // Tokenized MatMul+Bias
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnectedBiasQuantized, MatMulBiasQuantized,
::testing::Combine(
::testing::ValuesIn(fc_bias_shapes),
::testing::ValuesIn(quantized_precisions()),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // Subgraph
::testing::Values(1), // Tokenized MatMul+Bias
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulQuantized, MatMulQuantized,
INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulsQuantized, MatMulsQuantized,
::testing::Combine(
::testing::ValuesIn(STATIC_SHAPES({{1, 16, 128, 64}, {1, 16, 64, 128}, {128, 64}})),
::testing::ValuesIn(quantized_precisions()),
::testing::Values(MatMulType::MatMul),
::testing::Values(3), // Subgraph + Reshape + Subgraph
::testing::Values(2), // Tokenized [MatMul+FQ+Matmul] and [FQ]
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulQuantizedSoftmax, MatMulQuantizedSoftmax,
std::vector<std::vector<ov::test::InputShape>> fcs_shapes{
{
{PartialShape{-1, -1, -1, 2500}, {{2, 1, 32, 2500}, {1, 3, 80, 2500}}},
{{}, {{2500, 256}}},
{{}, {{256, 64}}}
},
};

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnectedsQuantized, MatMulsQuantized,
::testing::Combine(
::testing::ValuesIn(fcs_shapes),
::testing::ValuesIn(quantized_precisions()),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // Reshape on weights is folded => only 1 Subgraph remains
::testing::Values(1), // Tokenized [MatMul+FQ+Matmul]
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_MatMulsQuantizedSoftmax, MatMulsQuantizedSoftmax,
::testing::Combine(
::testing::ValuesIn(STATIC_SHAPES({{1, 16, 128, 64}, {1, 16, 64, 128}, {128, 64}})),
::testing::ValuesIn(quantized_precisions()),
::testing::Values(MatMulType::MatMul),
::testing::Values(3), // Subgraph + Reshape + Subgraph
::testing::Values(2), // Tokenized [MatMul+FQ+Matmul] and [FQ]
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

INSTANTIATE_TEST_SUITE_P(smoke_Snippets_FullyConnectedsQuantizedSoftmax, MatMulsQuantizedSoftmax,
::testing::Combine(
::testing::ValuesIn(fcs_shapes),
::testing::ValuesIn(quantized_precisions()),
::testing::Values(MatMulType::FullyConnected),
::testing::Values(1), // Reshape on weights is folded => only 1 Subgraph remains
::testing::Values(1), // Tokenized [MatMul+FQ+Matmul]
::testing::Values(ov::test::utils::DEVICE_CPU)),
MatMul::getTestCaseName);

} // namespace
} // namespace snippets
} // namespace test
Expand Down
Loading

0 comments on commit 77f3cee

Please sign in to comment.