From e8301fb5454d8dd8bb404e760b555e3e03a2b82b Mon Sep 17 00:00:00 2001 From: Alexey Varyzgin Date: Fri, 25 Jun 2021 16:47:47 +0300 Subject: [PATCH] [INT8+BF16] x8s8s32x_deconv_fwd bf16 output case elimination (#6237) --- .../src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp index 8931b8ef584..ba44392e66f 100644 --- a/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp +++ b/inference-engine/src/mkldnn_plugin/nodes/mkldnn_deconv_node.cpp @@ -202,7 +202,13 @@ void MKLDNNDeconvolutionNode::getSupportedDescriptors() { InferenceEngine::Precision inPrecision = getOriginalInputPrecisionAtPort(0); InferenceEngine::Precision outPrecision = getOriginalOutputPrecisionAtPort(0); - if (!isInt8) { + if (isInt8) { + // TODO: We have to extend jit_avx512_core_x8s8s32x_deconv_fwd_kernel from oneDNN to support BF16 output data type + if (InferenceEngine::Precision::BF16 == inPrecision) + inPrecision = InferenceEngine::Precision::FP32; + if (InferenceEngine::Precision::BF16 == outPrecision) + outPrecision = InferenceEngine::Precision::FP32; + } else { if (!one_of(inPrecision, InferenceEngine::Precision::FP32, InferenceEngine::Precision::BF16)) inPrecision = InferenceEngine::Precision::FP32; if (!one_of(outPrecision, InferenceEngine::Precision::FP32, InferenceEngine::Precision::BF16))