[CPU][ARM] FP16 inference precision support (#18394)

This commit is contained in:
Aleksandr Voron 2023-07-31 08:34:22 +02:00 committed by GitHub
parent 86bd5a4e2b
commit e9991982bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 275 additions and 115 deletions

View File

@ -20,6 +20,19 @@ elseif(OV_COMPILER_IS_CLANG)
ie_add_compiler_flags(-Wno-delete-non-abstract-non-virtual-dtor)
endif()
if(ARM)
set(OV_CPU_ARM_TARGET_ARCH_DEFAULT armv7a)
else()
if(APPLE)
# Apple M1 / M2 is assumed
set(OV_CPU_ARM_TARGET_ARCH_DEFAULT arm64-v8.2-a)
add_definitions(-DOV_CPU_ARM_ENABLE_FP16)
else()
set(OV_CPU_ARM_TARGET_ARCH_DEFAULT arm64-v8a)
endif()
endif()
set(OV_CPU_ARM_TARGET_ARCH ${OV_CPU_ARM_TARGET_ARCH_DEFAULT})
# enbale mlas for X86 cpus only
ie_dependent_option(ENABLE_MLAS_FOR_CPU "MLAS GEMM for OpenVINO CPU Plugin" ON "X86 OR X86_64" OFF)
add_subdirectory(thirdparty)

View File

@ -179,10 +179,16 @@ void Config::readProperties(const std::map<std::string, std::string> &prop) {
inferencePrecisionSetExplicitly = true;
}
} else if (val == "f16") {
#if defined(OPENVINO_ARCH_X86_64)
if (mayiuse(avx512_core_fp16) || mayiuse(avx512_core_amx_fp16)) {
inferencePrecision = ov::element::f16;
inferencePrecisionSetExplicitly = true;
}
#elif defined(OV_CPU_ARM_ENABLE_FP16)
// TODO: add runtime FP16 feature support check for ARM
inferencePrecision = ov::element::f16;
inferencePrecisionSetExplicitly = true;
#endif
} else if (val == "f32") {
inferencePrecision = ov::element::f32;
inferencePrecisionSetExplicitly = true;

View File

@ -311,8 +311,8 @@ void Graph::Replicate(const CNNNetwork &network) {
const auto childEdges = input.second->getChildEdgesAtPort(0);
for (size_t i = 0; i < childEdges.size(); i++) {
const auto child = childEdges[i]->getChild();
if (!one_of(child->getOriginalInputPrecisionAtPort(childEdges[i]->getOutputNum()),
Precision::BF16, Precision::FP16) &&
const auto child_prec = child->getOriginalInputPrecisionAtPort(childEdges[i]->getOutputNum());
if (!one_of(child_prec, Precision::BF16, Precision::FP16) &&
// remove this WA when #78939 is resolved
!hasSubgraphConsumers(child))
child->setOriginalInputPrecisionAtPort(childEdges[i]->getOutputNum(), precToSet);

View File

@ -876,7 +876,12 @@ void Convolution::createDescriptor(const std::vector<MemoryDescPtr>& inputDesc,
dnnl::memory::desc biasDnnlDesc;
if (withBiases) {
//oneDNN ARM Convolution primitive supports only identical in/out data types
#if defined(OPENVINO_ARCH_ARM) || defined(OPENVINO_ARCH_ARM64)
memory::data_type bdt = outDnnlDesc.get_data_type();
#else
memory::data_type bdt = memory::data_type::f32;
#endif
biasDnnlDesc = dnnl::memory::desc(DnnlExtensionUtils::convertToDnnlDims(expectedBiasDims), bdt, memory::format_tag::any);
}

View File

@ -2021,6 +2021,28 @@ void Eltwise::initSupportedPrimitiveDescriptors() {
IE_THROW() << "Eltwise node with name `" << getName() << "` doesn't support BF16 precision on this target.";
}
#if defined(OV_CPU_WITH_ACL)
Precision forcedPrec;
//ACL implementation supports only identical precisions on inputs/outputs so they are aligned it to highest one
if (AclEltwiseExecutor::isEltwiseAlgorithmSupported(getAlgorithm())) {
for (size_t i = 0; i < getParentEdges().size(); i++) {
if (!getParentEdgeAt(i)->getParent()->isConstant()) {
if (!forcedPrec || getOriginalInputPrecisionAtPort(i).size() > forcedPrec.size()) {
forcedPrec = getOriginalInputPrecisionAtPort(i);
}
}
}
if (!forcedPrec.is_float()) {
forcedPrec = Precision::FP32;
}
} else {
forcedPrec = Precision::FP32;
}
for (size_t i = 0; i < inputPrecisions.size(); i++) {
inputPrecisions[i] = forcedPrec;
}
outputPrecision = forcedPrec;
#else
auto filterPrecision = [&](Precision& prc) {
if (implType == EltwiseImplType::reference) {
return Precision(Precision::FP32);
@ -2039,6 +2061,7 @@ void Eltwise::initSupportedPrimitiveDescriptors() {
inputPrecisions[i] = filterPrecision(inputPrecisions[i]);
}
outputPrecision = filterPrecision(outputPrecision);
#endif
// TODO: delete after new LPT (ngraph based) is merged
// WA is needed to handle bug in LPT that produces wrong precision after average pooling (I8/U8 instead of FP32)

View File

@ -26,6 +26,40 @@ inline VectorDims reshape_sizes(VectorDims dims) {
return result_dims;
}
bool AclEltwiseExecutor::isEltwiseAlgorithmSupported(Algorithm algorithm) {
if (one_of(algorithm, Algorithm::EltwiseSqrt,
Algorithm::EltwiseDivide,
Algorithm::EltwiseRelu,
#ifdef OPENVINO_ARCH_ARM64
Algorithm::EltwiseGeluErf,
#endif
Algorithm::EltwiseElu,
Algorithm::EltwiseTanh,
Algorithm::EltwiseSigmoid,
Algorithm::EltwiseSoftRelu,
Algorithm::EltwiseClamp,
Algorithm::EltwiseSwish,
Algorithm::EltwisePrelu,
Algorithm::EltwiseHswish,
Algorithm::EltwiseAbs,
Algorithm::EltwiseExp,
Algorithm::EltwiseLog,
Algorithm::EltwiseMaximum,
Algorithm::EltwiseMinimum,
Algorithm::EltwiseSquaredDifference,
Algorithm::EltwiseAdd,
Algorithm::EltwiseSubtract,
Algorithm::EltwiseMultiply,
Algorithm::EltwiseEqual,
Algorithm::EltwiseNotEqual,
Algorithm::EltwiseGreater,
Algorithm::EltwiseGreaterEqual,
Algorithm::EltwiseLess,
Algorithm::EltwiseLessEqual)) {
return true;
}
return false;
}
bool AclEltwiseExecutorBuilder::isSupported(const EltwiseAttrs& eltwiseAttrs,
const std::vector<MemoryDescPtr>& srcDescs,
@ -50,7 +84,7 @@ bool AclEltwiseExecutorBuilder::isSupported(const EltwiseAttrs& eltwiseAttrs,
case Algorithm::EltwiseSigmoid:
case Algorithm::EltwiseSoftRelu:
case Algorithm::EltwiseClamp:
case Algorithm::EltwiseSwish: // TODO: CVS-109354: efficientdet-d0 accuracy drops if ACL Swish is used
case Algorithm::EltwiseSwish:
case Algorithm::EltwisePrelu:
case Algorithm::EltwiseHswish:
if (!(checkPrecision({Precision::FP16, Precision::FP16}, Precision::FP16) ||

View File

@ -16,6 +16,7 @@ using namespace InferenceEngine;
class AclEltwiseExecutor : public EltwiseExecutor {
public:
explicit AclEltwiseExecutor(const ExecutorContext::CPtr context);
static bool isEltwiseAlgorithmSupported(Algorithm algorithm);
bool init(const EltwiseAttrs& eltwiseAttrs,
const std::vector<MemoryDescPtr>& srcDescs,

View File

@ -7,6 +7,7 @@
#include "acl_utils.hpp"
#include "nodes/executors/mvn.hpp"
#include "arm_compute/runtime/NEON/NEFunctions.h"
#include "utils/debug_capabilities.h"
namespace ov {
namespace intel_cpu {
@ -42,24 +43,34 @@ public:
const std::vector<MemoryDescPtr>& dstDescs) const override {
if ((srcDescs[0]->getPrecision() != InferenceEngine::Precision::FP32 &&
srcDescs[0]->getPrecision() != InferenceEngine::Precision::FP16) ||
srcDescs[0]->getPrecision() != dstDescs[0]->getPrecision())
srcDescs[0]->getPrecision() != dstDescs[0]->getPrecision()) {
DEBUG_LOG("NEMeanStdDevNormalizationLayer does not support precisions:",
" src[0]=", srcDescs[0]->getPrecision(),
" dst[0]=", dstDescs[0]->getPrecision());
return false;
}
if (!(srcDescs[0]->hasLayoutType(LayoutType::ncsp) &&
dstDescs[0]->hasLayoutType(LayoutType::ncsp)) &&
!(srcDescs[0]->hasLayoutType(LayoutType::nspc) &&
dstDescs[0]->hasLayoutType(LayoutType::nspc)))
dstDescs[0]->hasLayoutType(LayoutType::nspc))) {
DEBUG_LOG("NEMeanStdDevNormalizationLayer does not support layout:",
" src: ", srcDescs[0]->serializeFormat(),
" dst: ", dstDescs[0]->serializeFormat());
return false;
}
if (mvnAttrs.epsMode_ == MVNEpsMode::OUTSIDE_SQRT) {
DEBUG_LOG("NEMeanStdDevNormalizationLayer does not support OUTSIDE_SQRT mode");
return false;
}
if (!mvnAttrs.normalizeVariance_) {
DEBUG_LOG("NEMeanStdDevNormalizationLayer supports normalize_variance=true only");
return false;
}
// "initAcrossChannels = false" is not supported by ACL for NHWC layout
if (!mvnAttrs.initAcrossChannels_ &&
getAclDataLayoutByMemoryDesc(srcDescs[0]) == arm_compute::DataLayout::NHWC) {
DEBUG_LOG("initAcrossChannels = false is not supported by ACL for NHWC layout");
return false;
}

View File

@ -35,7 +35,7 @@ public:
dstDescs[0]->hasLayoutType(LayoutType::ncsp)) &&
!(srcDescs[0]->hasLayoutType(LayoutType::nspc) &&
dstDescs[0]->hasLayoutType(LayoutType::nspc))) {
DEBUG_LOG("NEPermute does not support precisions:",
DEBUG_LOG("NEPermute does not support layout:",
" src: ", srcDescs[0]->serializeFormat(),
" dst: ", dstDescs[0]->serializeFormat());
return false;
@ -45,6 +45,15 @@ public:
srcDescs[0]->getShape().getRank());
return false;
}
if (srcDescs[0]->getPrecision() != dstDescs[0]->getPrecision()) {
DEBUG_LOG("NEPermute requires the same input and output precisions");
return false;
}
if (srcDescs[0]->getPrecision() != InferenceEngine::Precision::FP32 &&
srcDescs[0]->getPrecision() != InferenceEngine::Precision::I8) {
DEBUG_LOG("NEPermute supports 1, 2, 4 bytes data types. FP16 implementation is disabled due to performance issues");
return false;
}
return true;
}

View File

@ -262,6 +262,9 @@ void FullyConnected::getSupportedDescriptors() {
if (!one_of(outputDataType , memory::data_type::f32, memory::data_type::f16)) {
outputDataType = memory::data_type::f16;
}
#if defined(OV_CPU_WITH_ACL)
weightsDataType = memory::data_type::f16;
#endif
} else if (one_of(inputDataType, memory::data_type::u8, memory::data_type::s8)) {
if (weightsDataType != memory::data_type::s8) {
// weight has to be s8 for INT8 mode, otherwise fallback to
@ -716,7 +719,12 @@ void FullyConnected::createDescriptorInternal(const dnnl::memory::desc &inputDes
dnnl::memory::data_type bdt = outdt;
if (one_of(indt, dnnl::memory::data_type::bf16, dnnl::memory::data_type::f16)) {
//oneDNN ARM InnerProduct primitive supports only identical in/out data types
#if defined(OPENVINO_ARCH_X86_64)
bdt = dnnl::memory::data_type::f32;
#else
bdt = dnnl::memory::data_type::f16;
#endif
} else if (indt == dnnl::memory::data_type::u8 || indt == dnnl::memory::data_type::s8) {
wdt = memory::data_type::s8;
if (withBiases)

View File

@ -1859,12 +1859,16 @@ void MVN::initSupportedPrimitiveDescriptors() {
}
}
}
#if defined(OPENVINO_ARCH_X86) || defined(OPENVINO_ARCH_X86_64)
// ref with float planar and no fusion
if (!mayiuse(cpu::x64::sse41)) {
inputPrecision = outputPrecision = Precision::FP32;
}
#endif
//Output precision has to be equal to input precision in ACL MVN
#if defined(OV_CPU_WITH_ACL)
outputPrecision = inputPrecision;
#endif
// TODO [DS]: inplace
bool canBeInplace = !isDynamicNode() && (inputPrecision.size() == outputPrecision.size()) &&
(getParentEdgeAt(0)->getParent()->getChildEdges().size() == 1) &&

View File

@ -175,7 +175,7 @@ void Transpose::initSupportedPrimitiveDescriptors() {
supportedPrimitiveDescriptorsBuilder(config, transposeParams);
}
#endif // OPENVINO_ARCH_X86_64
if (prec == Precision::FP32 || prec == Precision::I8 || prec == Precision::U8) {
if (prec == Precision::FP32 || prec == Precision::FP16 || prec == Precision::I8 || prec == Precision::U8) {
config.inConfs[0].setMemDesc(creatorsMap.at(LayoutType::nspc)->createSharedDesc(prec, inputDataShape));
config.outConfs[0].setMemDesc(creatorsMap.at(LayoutType::nspc)->createSharedDesc(prec, outputDataShape));
supportedPrimitiveDescriptorsBuilder(config, transposeParams);

View File

@ -117,6 +117,13 @@ void BlobDumper::prepare_plain_data(const MemoryPtr &memory, std::vector<uint8_t
pln_blob_ptr[i] = blob_ptr[desc.getElementOffset(i)];
break;
}
case Precision::FP16: {
auto *pln_blob_ptr = reinterpret_cast<float16 *>(data.data());
auto *blob_ptr = reinterpret_cast<const float16 *>(ptr);
for (size_t i = 0; i < data_size; i++)
pln_blob_ptr[i] = blob_ptr[desc.getElementOffset(i)];
break;
}
case Precision::I8:
case Precision::U8: {
auto *pln_blob_ptr = reinterpret_cast<int8_t*>(data.data());
@ -172,6 +179,12 @@ void BlobDumper::dumpAsTxt(std::ostream &stream) const {
stream << blob_ptr[desc.getElementOffset(i)] << std::endl;
break;
}
case Precision::I32: {
auto *blob_ptr = reinterpret_cast<const int32_t*>(ptr);
for (size_t i = 0; i < data_size; i++)
stream << blob_ptr[desc.getElementOffset(i)] << std::endl;
break;
}
case Precision::BF16: {
auto *blob_ptr = reinterpret_cast<const bfloat16_t*>(ptr);
for (size_t i = 0; i < data_size; i++) {
@ -180,8 +193,8 @@ void BlobDumper::dumpAsTxt(std::ostream &stream) const {
}
break;
}
case Precision::I32: {
auto *blob_ptr = reinterpret_cast<const int32_t*>(ptr);
case Precision::FP16: {
auto *blob_ptr = reinterpret_cast<const float16*>(ptr);
for (size_t i = 0; i < data_size; i++)
stream << blob_ptr[desc.getElementOffset(i)] << std::endl;
break;

View File

@ -251,6 +251,10 @@ std::vector<std::string> disabledTestPatterns() {
// Skip fp16 tests for paltforms that don't support fp16 precision
retVector.emplace_back(R"(.*INFERENCE_PRECISION_HINT=(F|f)16.*)");
}
#endif
#if defined(OV_CPU_ARM_ENABLE_FP16)
// Skip fp16 tests for paltforms that don't support fp16 precision
retVector.emplace_back(R"(.*INFERENCE_PRECISION_HINT=(F|f)16.*)");
#endif
if (!InferenceEngine::with_cpu_x86_avx512_core_vnni() && !InferenceEngine::with_cpu_x86_avx512_core_amx_int8()) {
// MatMul in Snippets uses BRGEMM that supports i8 only on platforms with VNNI or AMX instructions

View File

@ -81,8 +81,8 @@ void EltwiseLayerCPUTest::SetUp() {
ElementType netType;
ngraph::helpers::InputLayerType secondaryInputType;
ov::test::utils::OpType opType;
Config additional_config;
std::tie(shapes, eltwiseType, secondaryInputType, opType, netType, inType, outType, targetDevice, configuration) = basicParamsSet;
ov::AnyMap additional_config;
std::tie(shapes, eltwiseType, secondaryInputType, opType, netType, inType, outType, targetDevice, additional_config) = basicParamsSet;
if (ElementType::bf16 == netType) {
rel_threshold = 2e-2f;
@ -160,9 +160,11 @@ TEST_P(EltwiseLayerCPUTest, CompareWithRefs) {
}
namespace Eltwise {
const ov::AnyMap& additional_config() {
static const ov::AnyMap additional_config;
const std::vector<ov::AnyMap>& additional_config() {
static const std::vector<ov::AnyMap> additional_config = {
{{ov::hint::inference_precision.name(), ov::element::f32}},
{{ov::hint::inference_precision.name(), ov::element::f16}}
};
return additional_config;
}

View File

@ -38,7 +38,7 @@ private:
namespace Eltwise {
const ov::AnyMap& additional_config();
const std::vector<ov::AnyMap>& additional_config();
const std::vector<ElementType>& netType();
const std::vector<ov::test::utils::OpType>& opTypes();

View File

@ -18,7 +18,8 @@ std::string MvnLayerCPUTest::getTestCaseName(testing::TestParamInfo<MvnLayerCPUT
CPUSpecificParams cpuParams;
fusingSpecificParams fusingParams;
ElementType inputPrecision, outputPrecision;
std::tie(basicParamsSet, cpuParams, fusingParams, inputPrecision, outputPrecision) = obj.param;
std::map<std::string, ov::element::Type> additionalConfig;
std::tie(basicParamsSet, cpuParams, fusingParams, inputPrecision, outputPrecision, additionalConfig) = obj.param;
InputShape inputShapes;
ElementType netPrecision;
@ -46,6 +47,13 @@ std::string MvnLayerCPUTest::getTestCaseName(testing::TestParamInfo<MvnLayerCPUT
result << "_"
<< "CNNOutPrc=" << outputPrecision;
if (!additionalConfig.empty()) {
result << "_PluginConf";
for (auto& item : additionalConfig) {
result << "_" << item.first << "=" << item.second.get_type_name();
}
}
result << CPUTestsBase::getTestCaseName(cpuParams);
result << CpuTestWithFusing::getTestCaseName(fusingParams);
@ -72,7 +80,8 @@ void MvnLayerCPUTest::SetUp() {
fusingSpecificParams fusingParams;
ElementType inPrc;
ElementType outPrc;
std::tie(basicParamsSet, cpuParams, fusingParams, inPrc, outPrc) = this->GetParam();
std::map<std::string, ov::element::Type> additionalConfig;
std::tie(basicParamsSet, cpuParams, fusingParams, inPrc, outPrc, additionalConfig) = this->GetParam();
std::tie(inFmts, outFmts, priority, selectedType) = cpuParams;
std::tie(postOpMgrPtr, fusedOps) = fusingParams;
@ -98,10 +107,17 @@ void MvnLayerCPUTest::SetUp() {
mvn = ngraph::builder::makeMVN(paramOuts[0], axes, normalizeVariance, eps);
}
rel_threshold = 0.015f;
if (additionalConfig[ov::hint::inference_precision.name()] == ov::element::f16) {
//FIXME: ref and acl mvn implementation has accuracy issues on fp16 (#116344)
abs_threshold = .05f;
rel_threshold = 250.f;
}
configuration.insert(additionalConfig.begin(), additionalConfig.end());
selectedType = getPrimitiveType();
selectedType = makeSelectedTypeStr(selectedType, netPrecision);
rel_threshold = 0.015f;
function = makeNgraphFunction(netPrecision, param, mvn, "mvn");
}
@ -111,6 +127,14 @@ TEST_P(MvnLayerCPUTest, CompareWithRefs) {
}
namespace MVN {
const std::vector<std::map<std::string, ov::element::Type>>& additionalConfig() {
static const std::vector<std::map<std::string, ov::element::Type>> additionalConfig = {
{{ov::hint::inference_precision.name(), ov::element::f32}},
{{ov::hint::inference_precision.name(), ov::element::f16}}
};
return additionalConfig;
}
const std::vector<InputShape>& inputShapes_1D() {
static const std::vector<InputShape> inputShapes_1D = {
{ {}, {{5}}},

View File

@ -32,7 +32,8 @@ using MvnLayerCPUTestParamSet = std::tuple<
CPUSpecificParams,
fusingSpecificParams,
ElementType, // CNNNetwork input precision
ElementType>; // CNNNetwork output precision
ElementType, // CNNNetwork output precision
std::map<std::string, ov::element::Type>>;
class MvnLayerCPUTest : public testing::WithParamInterface<MvnLayerCPUTestParamSet>,
virtual public SubgraphBaseTest, public CpuTestWithFusing {
@ -61,5 +62,6 @@ namespace MVN {
const std::vector<bool>& acrossChannels();
const std::vector<double>& epsilon();
const std::vector<std::map<std::string, ov::element::Type>>& additionalConfig();
} // namespace MVN
} // namespace CPULayerTestsDefinitions

View File

@ -32,6 +32,12 @@ std::string TransposeLayerCPUTest::getTestCaseName(testing::TestParamInfo<Transp
result << "inputOrder=" << ov::test::utils::vec2str(inputOrder) << "_";
result << "netPRC=" << netPrecision.name() << "_";
result << "trgDev=" << targetDevice;
if (!additionalConfig.empty()) {
result << "_PluginConf";
for (auto& item : additionalConfig) {
result << "_" << item.first << "=" << item.second;
}
}
result << CPUTestsBase::getTestCaseName(cpuParams);
return result.str();
}
@ -44,7 +50,6 @@ void TransposeLayerCPUTest::SetUp() {
std::map<std::string, std::string> additionalConfig;
std::tie(inputShapes, inputOrder, netPrecision, targetDevice, additionalConfig, cpuParams) = this->GetParam();
configuration.insert(additionalConfig.begin(), additionalConfig.end());
inType = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision);
outType = FuncTestUtils::PrecisionUtils::convertIE2nGraphPrc(netPrecision);

View File

@ -25,7 +25,7 @@ const auto params_4D = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::Values(emptyFusingSpec));
@ -41,7 +41,7 @@ const auto params_4D_emptyCPUSpec = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::Values(emptyCPUSpec),
::testing::Values(emptyFusingSpec));
@ -57,7 +57,7 @@ const auto params_5D = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D())),
::testing::Values(emptyFusingSpec));
@ -73,7 +73,7 @@ const auto params_5D_emptyCPUSpec = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::Values(emptyCPUSpec),
::testing::Values(emptyFusingSpec));
@ -89,7 +89,7 @@ const auto params_4D_1D_constant_mode = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_1D_Constant_mode())),
::testing::Values(emptyFusingSpec));
@ -105,7 +105,7 @@ const auto params_4D_1D_parameter_mode = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_1D_Parameter_mode())),
::testing::Values(emptyFusingSpec));
@ -121,7 +121,7 @@ const auto params_5D_1D_constant = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_1D_constant())),
::testing::Values(emptyFusingSpec));
@ -137,7 +137,7 @@ const auto params_5D_1D_parameter = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_1D_parameter())),
::testing::Values(emptyFusingSpec));
@ -153,7 +153,7 @@ const auto params_4D_dyn_const = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::Values(emptyFusingSpec));
@ -169,7 +169,7 @@ const auto params_4D_dyn_param = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::Values(emptyFusingSpec));
@ -185,7 +185,7 @@ const auto params_5D_dyn_const = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D())),
::testing::Values(emptyFusingSpec));
@ -201,7 +201,7 @@ const auto params_5D_dyn_param = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D())),
::testing::Values(emptyFusingSpec));

View File

@ -56,7 +56,8 @@ const auto Mvn3D = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn3D, MvnLayerCPUTest, Mvn3D, MvnLayerCPUTest::getTestCaseName);
@ -71,7 +72,8 @@ const auto Mvn4D = ::testing::Combine(
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D)),
::testing::ValuesIn(fusingParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn4D, MvnLayerCPUTest, Mvn4D, MvnLayerCPUTest::getTestCaseName);
@ -86,7 +88,8 @@ const auto Mvn5D = ::testing::Combine(
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D)),
::testing::ValuesIn(fusingParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn5D, MvnLayerCPUTest, Mvn5D, MvnLayerCPUTest::getTestCaseName);
@ -106,7 +109,8 @@ const auto Mvn1D = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingUnaryEltwiseParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn1D, MvnLayerCPUTest, Mvn1D, MvnLayerCPUTest::getTestCaseName);
@ -122,7 +126,8 @@ const auto Mvn2D = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn2D, MvnLayerCPUTest, Mvn2D, MvnLayerCPUTest::getTestCaseName);
@ -138,7 +143,8 @@ const auto Mvn2DTrans = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingUnaryEltwiseParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn2DTrans, MvnLayerCPUTest, Mvn2DTrans, MvnLayerCPUTest::getTestCaseName);
@ -153,7 +159,8 @@ const auto Mvn2DStatic = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
const auto Mvn3DStatic = ::testing::Combine(
::testing::Combine(
@ -166,7 +173,8 @@ const auto Mvn3DStatic = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn3D_Static, MvnLayerCPUTest, Mvn3DStatic, MvnLayerCPUTest::getTestCaseName);
@ -181,7 +189,8 @@ const auto Mvn4DStatic = ::testing::Combine(
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D)),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn4D_Static, MvnLayerCPUTest, Mvn4DStatic, MvnLayerCPUTest::getTestCaseName);
@ -196,9 +205,10 @@ const auto Mvn5DStatic = ::testing::Combine(
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D)),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn5D_Static, MvnLayerCPUTest, Mvn5DStatic, MvnLayerCPUTest::getTestCaseName);
} // namespace MVN
} // namespace CPULayerTestsDefinitions
} // namespace CPULayerTestsDefinitions

View File

@ -13,7 +13,10 @@ using namespace ov::test;
namespace CPULayerTestsDefinitions {
namespace Transpose {
std::map<std::string, std::string> additional_config;
std::vector<std::map<std::string, std::string>> additional_config = {
{{ov::hint::inference_precision.name(), ov::element::f32.to_string()}},
{{ov::hint::inference_precision.name(), ov::element::f16.to_string()}}
};
const auto cpuParams_nhwc = CPUSpecificParams {{nhwc}, {}, {}, {}};
const auto cpuParams_nchw = CPUSpecificParams {{nchw}, {}, {}, {}};
@ -40,7 +43,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_staticShapes4DC16_Transpose, TransposeLayerCPUTes
::testing::ValuesIn(inputOrder4D()),
::testing::ValuesIn(netPrecisions),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config),
::testing::ValuesIn(additional_config),
::testing::ValuesIn(CPUParams4D)),
TransposeLayerCPUTest::getTestCaseName);
@ -50,7 +53,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_staticShapes4DC32_Transpose, TransposeLayerCPUTes
::testing::ValuesIn(inputOrder4D()),
::testing::ValuesIn(netPrecisions),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config),
::testing::ValuesIn(additional_config),
::testing::ValuesIn(CPUParams4D)),
TransposeLayerCPUTest::getTestCaseName);
@ -60,7 +63,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_dynamicShapes4D_Transpose, TransposeLayerCPUTest,
::testing::ValuesIn(inputOrder4D()),
::testing::ValuesIn(netPrecisions),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config),
::testing::ValuesIn(additional_config),
::testing::Values(CPUSpecificParams{})),
TransposeLayerCPUTest::getTestCaseName);
@ -70,7 +73,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_staticShapes4DC16_PermutePerChannels, TransposeLa
::testing::ValuesIn(inputOrderPerChannels4D),
::testing::ValuesIn(netPrecisionsPerChannels()),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config),
::testing::ValuesIn(additional_config),
::testing::Values(cpuParams_nhwc)),
TransposeLayerCPUTest::getTestCaseName);
@ -80,7 +83,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_staticShapes4DC32_PermutePerChannels, TransposeLa
::testing::ValuesIn(inputOrderPerChannels4D),
::testing::ValuesIn(netPrecisionsPerChannels()),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config),
::testing::ValuesIn(additional_config),
::testing::Values(cpuParams_nhwc)),
TransposeLayerCPUTest::getTestCaseName);
@ -90,7 +93,7 @@ INSTANTIATE_TEST_SUITE_P(smoke_dynamicShapes4D_PermutePerChannels, TransposeLaye
::testing::ValuesIn(inputOrderPerChannels4D),
::testing::ValuesIn(netPrecisionsPerChannels()),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config),
::testing::ValuesIn(additional_config),
::testing::Values(CPUSpecificParams{})),
TransposeLayerCPUTest::getTestCaseName);

View File

@ -165,7 +165,7 @@ const auto params_4D_Blocked_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::Values(emptyFusingSpec));
@ -182,7 +182,7 @@ const auto params_4D_fusing = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::ValuesIn(fusingParamsSet_x64));
@ -198,7 +198,7 @@ const auto params_4D_fusing_blocked_blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::ValuesIn(fusingParamsSet_x64));
@ -215,7 +215,7 @@ const auto params_4D_blocked_blocked_fusing = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::ValuesIn(fusingParamsSet_x64));
@ -232,7 +232,7 @@ const auto params_4D_emptyCPUSpec = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::Values(emptyCPUSpec),
::testing::Values(emptyFusingSpec));
@ -248,7 +248,7 @@ const auto params_5D_Blocked_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_Blocked_Blocked())),
::testing::Values(emptyFusingSpec));
@ -269,7 +269,7 @@ const auto params_5D_emptyCPUSpec_I32 = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSet_I32));
@ -285,7 +285,7 @@ const auto params_4D_Blocked_Planar = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Planar())),
::testing::Values(emptyFusingSpec));
@ -301,7 +301,7 @@ const auto params_4D_Planar_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Planar_Blocked())),
::testing::Values(emptyFusingSpec));
@ -317,7 +317,7 @@ const auto params_5D_Blocked_Planar = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_Blocked_Planar())),
::testing::Values(emptyFusingSpec));
@ -333,7 +333,7 @@ const auto params_5D_Planar_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_Planar_Blocked())),
::testing::Values(emptyFusingSpec));
@ -349,7 +349,7 @@ const auto params_4D_1D_constant_mode = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_1D_Constant_mode_x64())),
::testing::Values(emptyFusingSpec));
@ -365,7 +365,7 @@ const auto params_4D_1D_parameter_mode = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_1D_Parameter_mode())),
::testing::Values(emptyFusingSpec));
@ -381,7 +381,7 @@ const auto params_5D_1D_constant = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_1D_constant())),
::testing::Values(emptyFusingSpec));
@ -397,7 +397,7 @@ const auto params_5D_1D_parameter = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_1D_parameter())),
::testing::Values(emptyFusingSpec));
@ -415,7 +415,7 @@ const auto params_4D_dyn_const = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::Values(emptyFusingSpec));
@ -431,7 +431,7 @@ const auto params_4D_blocked_blocked_dyn_const = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::Values(emptyFusingSpec));
@ -448,7 +448,7 @@ const auto params_4D_dyn_param = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::Values(emptyFusingSpec));
@ -464,7 +464,7 @@ const auto params_4D_blocked_blocked_dyn_param = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::Values(emptyFusingSpec));
@ -481,7 +481,7 @@ const auto params_4D_dyn_param_fusing = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D())),
::testing::ValuesIn(fusingParamsSet_x64));
@ -497,7 +497,7 @@ const auto params_4D_dyn_param_fusing_Blocked_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::ValuesIn(fusingParamsSet_x64));
@ -514,7 +514,7 @@ const auto params_4D_blocked_blocked_dyn_param_fusing = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D_Blocked_Blocked())),
::testing::ValuesIn(fusingParamsSet_x64));
@ -533,7 +533,7 @@ const auto params_5D_dyn_const_Blocked_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_Blocked_Blocked())),
::testing::Values(emptyFusingSpec));
@ -550,7 +550,7 @@ const auto params_5D_dyn_param_Blocked_Blocked = ::testing::Combine(
::testing::Values(ov::element::undefined),
::testing::Values(ov::element::undefined),
::testing::Values(ov::test::utils::DEVICE_CPU),
::testing::Values(additional_config())),
::testing::ValuesIn(additional_config())),
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D_Blocked_Blocked())),
::testing::Values(emptyFusingSpec));

View File

@ -69,7 +69,8 @@ const auto Mvn3D = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn3D, MvnLayerCPUTest, Mvn3D, MvnLayerCPUTest::getTestCaseName);
@ -93,7 +94,8 @@ const auto Mvn1D = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingUnaryEltwiseParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn1D, MvnLayerCPUTest, Mvn1D, MvnLayerCPUTest::getTestCaseName);
@ -109,7 +111,8 @@ const auto Mvn2D = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn2D, MvnLayerCPUTest, Mvn2D, MvnLayerCPUTest::getTestCaseName);
@ -125,7 +128,8 @@ const auto Mvn2DTrans = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingUnaryEltwiseParamsSet),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn2DTrans, MvnLayerCPUTest, Mvn2DTrans, MvnLayerCPUTest::getTestCaseName);
@ -140,7 +144,8 @@ const auto Mvn2DStatic = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
const auto Mvn3DStatic = ::testing::Combine(
::testing::Combine(
@ -153,7 +158,8 @@ const auto Mvn3DStatic = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn3D_Static, MvnLayerCPUTest, Mvn3DStatic, MvnLayerCPUTest::getTestCaseName);
@ -168,7 +174,8 @@ const auto Mvn4DStatic = ::testing::Combine(
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_4D)),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn4D_Static, MvnLayerCPUTest, Mvn4DStatic, MvnLayerCPUTest::getTestCaseName);
@ -183,7 +190,8 @@ const auto Mvn5DStatic = ::testing::Combine(
::testing::ValuesIn(filterCPUSpecificParams(cpuParams_5D)),
::testing::ValuesIn(fusingParamsSetStaticShape),
::testing::ValuesIn(inpPrc),
::testing::ValuesIn(outPrc));
::testing::ValuesIn(outPrc),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_Mvn5D_Static, MvnLayerCPUTest, Mvn5DStatic, MvnLayerCPUTest::getTestCaseName);
@ -206,7 +214,8 @@ const auto MvnSmallSpatial = ::testing::Combine(
::testing::Values(emptyCPUSpec),
::testing::Values(emptyFusingSpec),
::testing::Values(ElementType::i8),
::testing::Values(ElementType::f32));
::testing::Values(ElementType::f32),
::testing::ValuesIn(additionalConfig()));
INSTANTIATE_TEST_SUITE_P(smoke_CompareWithRefs_MvnSmallSpatial, MvnLayerCPUTest, MvnSmallSpatial, MvnLayerCPUTest::getTestCaseName);

View File

@ -91,33 +91,7 @@ elseif(NOT TARGET arm_compute::arm_compute)
# Options
#
set(ARM_COMPUTE_SCONS_JOBS "8" CACHE STRING "Number of parallel threads to build ARM Compute Library")
set(ARM_COMPUTE_TARGET_GENERIC_ARCHS armv8a
armv8.2-a
armv8.6-a armv8.6-a-sve armv8.6-a-sve2 armv8.6-a-sve2-sme2
armv8r64 # the same as armv8.4-a
)
if(ARM)
set(ARM_COMPUTE_TARGET_ARCH_DEFAULT armv7a)
set(ARM_COMPUTE_TARGET_ARCHS armv7a armv7a-hf
# requires estate=32
${ARM_COMPUTE_TARGET_GENERIC_ARCHS})
else()
if(APPLE)
# Apple M1 / M2 is assumed
set(ARM_COMPUTE_TARGET_ARCH_DEFAULT arm64-v8.2-a)
else()
set(ARM_COMPUTE_TARGET_ARCH_DEFAULT arm64-v8a)
endif()
set(ARM_COMPUTE_TARGET_ARCHS arm64-v8a
arm64-v8.2-a arm64-v8.2-a-sve arm64-v8.2-a-sve2
# used with estate=64
${ARM_COMPUTE_TARGET_GENERIC_ARCHS})
endif()
set(ARM_COMPUTE_TARGET_ARCH "${ARM_COMPUTE_TARGET_ARCH_DEFAULT}" CACHE STRING "Architecture for ARM ComputeLibrary")
set_property(CACHE ARM_COMPUTE_TARGET_ARCH PROPERTY STRINGS ${ARM_COMPUTE_TARGET_ARCHS})
set(ARM_COMPUTE_SCONS_JOBS "8" CACHE STRING "Number of parallel threads to build ARM Compute Library")
#
# Configure & build
@ -168,7 +142,7 @@ elseif(NOT TARGET arm_compute::arm_compute)
# build_config=<file>
# TODO: use data_type_support to disable useless kernels
data_layout_support=all
arch=${ARM_COMPUTE_TARGET_ARCH}
arch=${OV_CPU_ARM_TARGET_ARCH}
)
if(ARM)

@ -1 +1 @@
Subproject commit 5bf389f616d0b1551ce468f2712df492a7aab140
Subproject commit 2c0b3f2946185370b3ccbe4330398c15109e5ec4