enable skipped test case of matmul
remove some test cases, custom matmul only support some rank Signed-off-by: HU Yuan2 <yuan2.hu@intel.com>
This commit is contained in:
parent
a54f864027
commit
9387d3a7d4
@ -29,7 +29,7 @@ Result MMShapeInfer::infer(
|
|||||||
if (rankA == 1 && rankB == 1 && shapeA[0] == shapeB[0]) {
|
if (rankA == 1 && rankB == 1 && shapeA[0] == shapeB[0]) {
|
||||||
return {{m_shapeY}, ShapeInferStatus::success};
|
return {{m_shapeY}, ShapeInferStatus::success};
|
||||||
}
|
}
|
||||||
|
OPENVINO_ASSERT(m_out_rank >= 2);
|
||||||
m_shapeY[m_out_rank-2] = m_transpose_a ? shapeA[rankA-1] : shapeA[rankA-2];
|
m_shapeY[m_out_rank-2] = m_transpose_a ? shapeA[rankA-1] : shapeA[rankA-2];
|
||||||
m_shapeY[m_out_rank-1] = m_transpose_b ? shapeB[rankB-2] : shapeB[rankB-1];
|
m_shapeY[m_out_rank-1] = m_transpose_b ? shapeB[rankB-2] : shapeB[rankB-1];
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
#include "custom_shape_infer.hpp"
|
#include "custom_shape_infer.hpp"
|
||||||
|
#include "openvino/core/dimension.hpp"
|
||||||
|
#include "openvino/core/partial_shape.hpp"
|
||||||
#include "openvino/op/ops.hpp"
|
#include "openvino/op/ops.hpp"
|
||||||
namespace ov {
|
namespace ov {
|
||||||
namespace intel_cpu {
|
namespace intel_cpu {
|
||||||
@ -33,7 +35,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
std::tie(a_shape, b_shape) = GetParam();
|
std::tie(a_shape, b_shape) = GetParam();
|
||||||
|
(*exp_shape).clear();
|
||||||
set_exp_shape();
|
set_exp_shape();
|
||||||
output_shapes.clear();
|
output_shapes.clear();
|
||||||
output_shapes.push_back(exp_shape);
|
output_shapes.push_back(exp_shape);
|
||||||
@ -82,39 +84,35 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
TEST_P(CPUMatMulTest, no_input_transpose) {
|
TEST_P(CPUMatMulTest, no_input_transpose) {
|
||||||
GTEST_SKIP() << "Skipping test, please check CVS-108946";
|
|
||||||
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), false, false);
|
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), false, false);
|
||||||
|
|
||||||
std::vector<StaticShape> static_input_shapes = {a_shape, b_shape};
|
std::vector<StaticShape> static_input_shapes = {a_shape, b_shape};
|
||||||
|
|
||||||
// TODO 108946,below test case can't pass
|
matmul->set_output_type(0, element::i64, ov::PartialShape(std::vector<ov::Dimension>(exp_shape.size(), -1)));
|
||||||
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_P(CPUMatMulTest, transpose_input_a) {
|
TEST_P(CPUMatMulTest, transpose_input_a) {
|
||||||
GTEST_SKIP() << "Skipping test, please check CVS-108946";
|
|
||||||
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), true, false);
|
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), true, false);
|
||||||
|
|
||||||
const auto a_transpose = make_transpose_input(a_shape);
|
const auto a_transpose = make_transpose_input(a_shape);
|
||||||
std::vector<StaticShape> static_input_shapes = {a_transpose, b_shape};
|
std::vector<StaticShape> static_input_shapes = {a_transpose, b_shape};
|
||||||
|
|
||||||
// TODO 108946,below test case can't pass
|
matmul->set_output_type(0, element::i64, ov::PartialShape(std::vector<ov::Dimension>(exp_shape.size(), -1)));
|
||||||
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_P(CPUMatMulTest, transpose_input_b) {
|
TEST_P(CPUMatMulTest, transpose_input_b) {
|
||||||
GTEST_SKIP() << "Skipping test, please check CVS-108946";
|
|
||||||
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), false, true);
|
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), false, true);
|
||||||
|
|
||||||
const auto b_transpose = make_transpose_input(b_shape);
|
const auto b_transpose = make_transpose_input(b_shape);
|
||||||
std::vector<StaticShape> static_input_shapes = {a_shape, b_transpose};
|
std::vector<StaticShape> static_input_shapes = {a_shape, b_transpose};
|
||||||
|
|
||||||
// TODO 108946,below test case can't pass
|
matmul->set_output_type(0, element::i64, ov::PartialShape(std::vector<ov::Dimension>(exp_shape.size(), -1)));
|
||||||
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_P(CPUMatMulTest, transpose_inputs_a_b) {
|
TEST_P(CPUMatMulTest, transpose_inputs_a_b) {
|
||||||
GTEST_SKIP() << "Skipping test, please check CVS-108946";
|
|
||||||
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), true, true);
|
const auto matmul = make_matmul(a_shape.size(), b_shape.size(), true, true);
|
||||||
|
|
||||||
const auto a_transpose = make_transpose_input(a_shape);
|
const auto a_transpose = make_transpose_input(a_shape);
|
||||||
@ -122,23 +120,24 @@ TEST_P(CPUMatMulTest, transpose_inputs_a_b) {
|
|||||||
|
|
||||||
std::vector<StaticShape> static_input_shapes = {a_transpose, b_transpose};
|
std::vector<StaticShape> static_input_shapes = {a_transpose, b_transpose};
|
||||||
|
|
||||||
// TODO 108946,below test case can't pass
|
matmul->set_output_type(0, element::i64, ov::PartialShape(std::vector<ov::Dimension>(exp_shape.size(), -1)));
|
||||||
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
unit_test::cpu_test_shape_infer(matmul.get(), static_input_shapes, output_shapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Use transpose order -> output shape dimensions shall be as transpose order. */
|
/** \brief Use transpose order -> output shape dimensions shall be as transpose order. */
|
||||||
INSTANTIATE_TEST_SUITE_P(CpuShapeInfer,
|
INSTANTIATE_TEST_SUITE_P(CpuShapeInfer,
|
||||||
CPUMatMulTest,
|
CPUMatMulTest,
|
||||||
|
// only support rankA = rankB
|
||||||
Values(make_tuple(StaticShape({1}), StaticShape({1})),
|
Values(make_tuple(StaticShape({1}), StaticShape({1})),
|
||||||
make_tuple(StaticShape({1}), StaticShape({1, 3})),
|
|
||||||
make_tuple(StaticShape({1}), StaticShape({1, 1, 3})),
|
|
||||||
make_tuple(StaticShape({3, 1}), StaticShape({1})),
|
|
||||||
make_tuple(StaticShape({3, 2, 1}), StaticShape({1})),
|
|
||||||
make_tuple(StaticShape({3}), StaticShape({3})),
|
make_tuple(StaticShape({3}), StaticShape({3})),
|
||||||
make_tuple(StaticShape({5, 2}), StaticShape({2, 6})),
|
make_tuple(StaticShape({5, 2}), StaticShape({2, 6})),
|
||||||
make_tuple(StaticShape({2, 1, 2}), StaticShape({2, 6})),
|
|
||||||
make_tuple(StaticShape({10, 8, 9, 2}), StaticShape({10, 8, 2, 8})),
|
make_tuple(StaticShape({10, 8, 9, 2}), StaticShape({10, 8, 2, 8})),
|
||||||
make_tuple(StaticShape({3, 1, 4, 3, 4}), StaticShape({3, 2, 1, 4, 1}))),
|
make_tuple(StaticShape({3, 1, 4, 3, 4}), StaticShape({3, 2, 1, 4, 1}))),
|
||||||
|
// make_tuple(StaticShape({1}), StaticShape({1, 3})),
|
||||||
|
// make_tuple(StaticShape({1}), StaticShape({1, 1, 3})),
|
||||||
|
// make_tuple(StaticShape({3, 1}), StaticShape({1})),
|
||||||
|
// make_tuple(StaticShape({3, 2, 1}), StaticShape({1})),
|
||||||
|
// make_tuple(StaticShape({2, 1, 2}), StaticShape({2, 6})),
|
||||||
CPUMatMulTest::getTestCaseName);
|
CPUMatMulTest::getTestCaseName);
|
||||||
|
|
||||||
} // namespace cpu_shape_infer
|
} // namespace cpu_shape_infer
|
||||||
|
Loading…
Reference in New Issue
Block a user