diff --git a/src/inference/dev_api/ie_system_conf.h b/src/inference/dev_api/ie_system_conf.h index 130f5d30a89e2f..22babeb5e5be03 100644 --- a/src/inference/dev_api/ie_system_conf.h +++ b/src/inference/dev_api/ie_system_conf.h @@ -101,6 +101,13 @@ using ov::with_cpu_x86_avx2; */ using ov::with_cpu_x86_avx2_vnni; +/** + * @brief Checks whether CPU supports AVX2_VNNI_2 capability + * @ingroup ie_dev_api_system_conf + * @return `True` is AVX2_VNNI_2 instructions are available, `false` otherwise + */ +using ov::with_cpu_x86_avx2_vnni_2; + /** * @brief Checks whether CPU supports AVX 512 capability * @ingroup ie_dev_api_system_conf diff --git a/src/inference/dev_api/openvino/runtime/system_conf.hpp b/src/inference/dev_api/openvino/runtime/system_conf.hpp index c2e0cc37fd942c..94d71fca044482 100644 --- a/src/inference/dev_api/openvino/runtime/system_conf.hpp +++ b/src/inference/dev_api/openvino/runtime/system_conf.hpp @@ -89,6 +89,13 @@ OPENVINO_RUNTIME_API bool with_cpu_x86_avx2(); */ OPENVINO_RUNTIME_API bool with_cpu_x86_avx2_vnni(); +/** + * @brief Checks whether CPU supports AVX2_VNNI_2 capability + * @ingroup ov_dev_api_system_conf + * @return `True` is AVX2_VNNI_2 instructions are available, `false` otherwise + */ +OPENVINO_RUNTIME_API bool with_cpu_x86_avx2_vnni_2(); + /** * @brief Checks whether CPU supports AVX 512 capability * @ingroup ov_dev_api_system_conf diff --git a/src/inference/src/system_conf.cpp b/src/inference/src/system_conf.cpp index b4fded633ffdb0..f4252a5e7b5396 100644 --- a/src/inference/src/system_conf.cpp +++ b/src/inference/src/system_conf.cpp @@ -60,6 +60,11 @@ bool with_cpu_x86_avx2_vnni() { return get_cpu_info().has(Xbyak::util::Cpu::tAVX2 | Xbyak::util::Cpu::tAVX_VNNI); } +bool with_cpu_x86_avx2_vnni_2() { + return with_cpu_x86_avx2_vnni() && + get_cpu_info().has(Xbyak::util::Cpu::tAVX_VNNI_INT8 | Xbyak::util::Cpu::tAVX_NE_CONVERT); +} + bool with_cpu_x86_avx512f() { return get_cpu_info().has(Xbyak::util::Cpu::tAVX512F); } diff --git a/src/plugins/intel_cpu/src/nodes/conv.cpp b/src/plugins/intel_cpu/src/nodes/conv.cpp index ee2d4309106337..38749febaf3eb1 100644 --- a/src/plugins/intel_cpu/src/nodes/conv.cpp +++ b/src/plugins/intel_cpu/src/nodes/conv.cpp @@ -344,6 +344,8 @@ const std::vector& Convolution::getDefaultImplPriority() { impl_desc_type::jit_avx512_dw, impl_desc_type::jit_avx512_1x1, impl_desc_type::jit_avx512, + impl_desc_type::brgconv_avx2_1x1, + impl_desc_type::brgconv_avx2, impl_desc_type::jit_avx2_dw, impl_desc_type::jit_avx2_1x1, impl_desc_type::jit_avx2,