[CPU][ARM] FP16 inference precision support (#18394)
This commit is contained in:
parent
86bd5a4e2b
commit
e9991982bb
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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) ||
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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) &&
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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}}},
|
||||
|
@ -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
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
30
src/plugins/intel_cpu/thirdparty/ACLConfig.cmake
vendored
30
src/plugins/intel_cpu/thirdparty/ACLConfig.cmake
vendored
@ -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)
|
||||
|
2
src/plugins/intel_cpu/thirdparty/onednn
vendored
2
src/plugins/intel_cpu/thirdparty/onednn
vendored
@ -1 +1 @@
|
||||
Subproject commit 5bf389f616d0b1551ce468f2712df492a7aab140
|
||||
Subproject commit 2c0b3f2946185370b3ccbe4330398c15109e5ec4
|
Loading…
Reference in New Issue
Block a user