From b313bc28be06f49dd7122ba580097505543b8100 Mon Sep 17 00:00:00 2001 From: Denis Orlov Date: Wed, 30 Sep 2020 00:19:08 +0300 Subject: [PATCH 1/4] [GNA] Documentation updates for 2021.1 --- docs/IE_DG/supported_plugins/GNA.md | 30 +++++++++++++++++-- .../supported_plugins/Supported_Devices.md | 2 +- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/docs/IE_DG/supported_plugins/GNA.md b/docs/IE_DG/supported_plugins/GNA.md index 3ddda708a47575..f8f750b83def01 100644 --- a/docs/IE_DG/supported_plugins/GNA.md +++ b/docs/IE_DG/supported_plugins/GNA.md @@ -42,6 +42,8 @@ Intel® Core™ i3-8121U Processor - Intel® Core™ i3-1000G1 Processor - Intel® Core™ i3-1000G4 Processor +* All [Tiger Lake](https://ark.intel.com/content/www/us/en/ark/products/codename/88759/tiger-lake.html) processors. + > **NOTE**: On platforms where Intel® GNA is not enabled in the BIOS, the driver cannot be installed, so the GNA plugin uses the software emulation mode only. ## Drivers and Dependencies @@ -64,10 +66,11 @@ The list of supported layers can be found [here](Supported_Devices.md) (see the GNA column of Supported Layers section). Limitations include: -- Only 1D convolutions (in the models converted from [Kaldi](../../MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md) framework) are natively supported +- Only 1D convolutions are natively supported in the models converted from: + - [Kaldi](../../MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md) framework; + - [TensorFlow](../../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md) framework; note that for TensorFlow models, the option `--disable_nhwc_to_nchw` must be used when running the Model Optimizer. - The number of output channels for convolutions must be a multiple of 4 - Permute layer support is limited to the cases where no data reordering is needed, or when reordering is happening for 2 dimensions, at least one of which is not greater than 8 -- Power layer only supports the power parameter equal to 1 #### Experimental Support for 2D Convolutions @@ -159,6 +162,29 @@ Heterogeneous plugin was tested with the Intel® GNA as a primary device and > **NOTE:** Due to limitation of the Intel® GNA backend library, heterogenous support is limited to cases where in the resulted sliced graph, only one subgraph is scheduled to run on GNA\_HW or GNA\_SW devices. +## Recovery from interruption by high-priority Windows audio processes\* + +As noted in the introduction, GNA is designed for real-time workloads such as noise reduction or speech recognition. +For such workloads, processing should be time constrained, otherwise extra delays may cause undesired effects such as +audio "glitches". To make sure that processing can satisfy real time requirements, the GNA driver provides a QoS +(Quality of Service) mechanism which interrupts the requests which cannot be fulfilled in time. +This means that high-priority real-time audio applications on Windows may cause long running GNA tasks to terminate early. +Applications should be prepared for this situation. +If an inference (in `GNA_HW` mode) cannot be executed because of such interruption, then `InferRequest::Wait()` will return status code +`StatusCode::INFER_NOT_STARTED` (note that it will be changed to a more meaningful status code in future releases). + +Any application working with GNA must properly react if receives this code. Various strategies are possible. +One of the options is to immediately switch to GNA SW emulation mode: + +```cpp +std::map newConfig; +newConfig[GNAConfigParams::KEY_GNA_DEVICE_MODE] = Parameter("GNA_SW_EXACT"); +executableNet.SetConfig(newConfig); + +``` + +and switch back to GNA_HW after some time hoping that the competing application has finished. + ## See Also * [Supported Devices](Supported_Devices.md) diff --git a/docs/IE_DG/supported_plugins/Supported_Devices.md b/docs/IE_DG/supported_plugins/Supported_Devices.md index 7e4111837a14bb..cc0ba79491b235 100644 --- a/docs/IE_DG/supported_plugins/Supported_Devices.md +++ b/docs/IE_DG/supported_plugins/Supported_Devices.md @@ -94,7 +94,7 @@ the supported output precision depends on the actual underlying devices. _Gener |GPU plugin |Supported |Supported |Supported |Supported | |FPGA plugin |Not supported |Supported |Supported |Not supported | |VPU plugins |Not supported |Supported |Supported |Supported | -|GNA plugin |Not supported |Not supported |Not supported |Supported | +|GNA plugin |Not supported |Supported |Supported |Supported | ### Supported Output Layout From 29eef269e4ff6888cbe0cbc0aa4fb9d591fd4373 Mon Sep 17 00:00:00 2001 From: Denis Orlov Date: Fri, 2 Oct 2020 20:01:33 +0300 Subject: [PATCH 2/4] Take Mike's comments into account --- docs/IE_DG/supported_plugins/GNA.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/IE_DG/supported_plugins/GNA.md b/docs/IE_DG/supported_plugins/GNA.md index f8f750b83def01..1f384280920cb0 100644 --- a/docs/IE_DG/supported_plugins/GNA.md +++ b/docs/IE_DG/supported_plugins/GNA.md @@ -164,11 +164,12 @@ Heterogeneous plugin was tested with the Intel® GNA as a primary device and ## Recovery from interruption by high-priority Windows audio processes\* -As noted in the introduction, GNA is designed for real-time workloads such as noise reduction or speech recognition. +As noted in the introduction, GNA is designed for real-time workloads such as noise reduction. For such workloads, processing should be time constrained, otherwise extra delays may cause undesired effects such as audio "glitches". To make sure that processing can satisfy real time requirements, the GNA driver provides a QoS -(Quality of Service) mechanism which interrupts the requests which cannot be fulfilled in time. -This means that high-priority real-time audio applications on Windows may cause long running GNA tasks to terminate early. +(Quality of Service) mechanism which interrupts requests that might cause high-priority Windows audio processes to miss +schedule, thereby causing long running GNA tasks to terminate early. + Applications should be prepared for this situation. If an inference (in `GNA_HW` mode) cannot be executed because of such interruption, then `InferRequest::Wait()` will return status code `StatusCode::INFER_NOT_STARTED` (note that it will be changed to a more meaningful status code in future releases). From ad7d7aaac45691f2e54c9b80a1bf39fa9161de8a Mon Sep 17 00:00:00 2001 From: Denis Orlov Date: Fri, 2 Oct 2020 20:17:31 +0300 Subject: [PATCH 3/4] More fixes according to review --- docs/IE_DG/supported_plugins/GNA.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/IE_DG/supported_plugins/GNA.md b/docs/IE_DG/supported_plugins/GNA.md index 1f384280920cb0..30108807350cfc 100644 --- a/docs/IE_DG/supported_plugins/GNA.md +++ b/docs/IE_DG/supported_plugins/GNA.md @@ -171,10 +171,10 @@ audio "glitches". To make sure that processing can satisfy real time requirement schedule, thereby causing long running GNA tasks to terminate early. Applications should be prepared for this situation. -If an inference (in `GNA_HW` mode) cannot be executed because of such interruption, then `InferRequest::Wait()` will return status code +If an inference (in `GNA_HW` mode) cannot be executed because of such an interruption, then `InferRequest::Wait()` will return status code `StatusCode::INFER_NOT_STARTED` (note that it will be changed to a more meaningful status code in future releases). -Any application working with GNA must properly react if receives this code. Various strategies are possible. +Any application working with GNA must properly react if it receives this code. Various strategies are possible. One of the options is to immediately switch to GNA SW emulation mode: ```cpp @@ -184,7 +184,7 @@ executableNet.SetConfig(newConfig); ``` -and switch back to GNA_HW after some time hoping that the competing application has finished. +then resubmit and switch back to GNA_HW after some time hoping that the competing application has finished. ## See Also From 4465a5962b9dbd0a70a8734b1f3c04e9a7941feb Mon Sep 17 00:00:00 2001 From: Denis Orlov Date: Tue, 6 Oct 2020 00:47:26 +0300 Subject: [PATCH 4/4] Fix processor generation names --- docs/IE_DG/supported_plugins/GNA.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/IE_DG/supported_plugins/GNA.md b/docs/IE_DG/supported_plugins/GNA.md index 30108807350cfc..ca035194f61a25 100644 --- a/docs/IE_DG/supported_plugins/GNA.md +++ b/docs/IE_DG/supported_plugins/GNA.md @@ -19,7 +19,7 @@ Devices with Intel® GNA support: * [Amazon Alexa* Premium Far-Field Developer Kit](https://developer.amazon.com/en-US/alexa/alexa-voice-service/dev-kits/amazon-premium-voice) -* [Gemini Lake](https://ark.intel.com/content/www/us/en/ark/products/codename/83915/gemini-lake.html): +* [Intel® Pentium® Silver Processors N5xxx, J5xxx and Intel® Celeron® Processors N4xxx, J4xxx](https://ark.intel.com/content/www/us/en/ark/products/codename/83915/gemini-lake.html): - Intel® Pentium® Silver J5005 Processor - Intel® Pentium® Silver N5000 Processor - Intel® Celeron® J4005 Processor @@ -27,10 +27,10 @@ Devices with Intel® GNA support: - Intel® Celeron® Processor N4100 - Intel® Celeron® Processor N4000 -* [Cannon Lake](https://ark.intel.com/content/www/us/en/ark/products/136863/intel-core-i3-8121u-processor-4m-cache-up-to-3-20-ghz.html): +* [Intel® Core™ Processors (formerly codenamed Cannon Lake)](https://ark.intel.com/content/www/us/en/ark/products/136863/intel-core-i3-8121u-processor-4m-cache-up-to-3-20-ghz.html): Intel® Core™ i3-8121U Processor -* [Ice Lake](https://ark.intel.com/content/www/us/en/ark/products/codename/74979/ice-lake.html): +* [10th Generation Intel® Core™ Processors (formerly codenamed Ice Lake)](https://ark.intel.com/content/www/us/en/ark/products/codename/74979/ice-lake.html): - Intel® Core™ i7-1065G7 Processor - Intel® Core™ i7-1060G7 Processor - Intel® Core™ i5-1035G4 Processor @@ -42,7 +42,7 @@ Intel® Core™ i3-8121U Processor - Intel® Core™ i3-1000G1 Processor - Intel® Core™ i3-1000G4 Processor -* All [Tiger Lake](https://ark.intel.com/content/www/us/en/ark/products/codename/88759/tiger-lake.html) processors. +* All [11th Generation Intel® Core™ Processors (formerly codenamed Tiger Lake)](https://ark.intel.com/content/www/us/en/ark/products/codename/88759/tiger-lake.html). > **NOTE**: On platforms where Intel® GNA is not enabled in the BIOS, the driver cannot be installed, so the GNA plugin uses the software emulation mode only.