Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.
6403 Discussions

Different segmentation results with MYRIAD_ENABLE_HW_ACCELERATION enabled / disabled

Benguigui__Michael
773 Views

Hi! I am trying to understand what MYRIAD_ENABLE_HW_ACCELERATION exactly does. Working on a Myriad X (NCS2), i get different fire segmentation results when enabling/disabling it (see attached files).
The generated IR models are identical, i.e. .bin and .xml files are the same in both cases. By comparing my first layer outputs, i found these (very very) summurized results

(l.10) UnetMobileNetV3Small/rescaling_1/add
->
hw output == no hw output

(l.13) UnetMobileNetV3Small/Conv/Conv2D ~OK
->
no hw 1.1543 1.12305 1.16602 1.16211 1.19531 1.12305 1.13086
hw 1.15625 1.125 1.16797 1.16406 1.19727 1.125 1.13281

(l.19) UnetMobileNetV3Small/multiply_18/mul ~OK
->
no hw 2.7832 2.7793 2.76758 2.74219 2.71875 2.64062
hw 2.7793 2.7793 2.75977 2.73633 2.71484 2.64062

(l.23) UnetMobileNetV3Small/expanded_conv/depthwise/depthwise KO
->
no hw -36.5625 44.5 8.60156 -35.0625 43.3125 8.75 -36.75
hw 6.42969 6.84766 7.55469 8.63281 6.14062 7.05078


Probably the small output differences of the layer (l.13) become bigger at layer (l.23) level. Id like to understand what does "Turn on HW stages usage" (ie MYRIAD_ENABLE_HW_ACCELERATION) mean ? The myriad x is not fully exploited when disabled ?
Thanks +++

Labels (1)
3 Replies
Alberto_R_Intel
Employee
753 Views

Benguigui__Michael, Thank you for posting in the Intel® Communities Support.


I just transfer your thread to the proper department. They will further assist you with this matter as soon as possible.


Regards,

Albert R.


Intel Customer Support Technician


0 Kudos
Wan_Intel
Moderator
675 Views

Hi Benguigui__Michael,

Thanks for reaching out to us.

 

For your information, MyriadX has SHAVEs and NCE hardware modules. SHAVEs use software kernels which is more stable option. Kernels like Convolution and Pooling can be optimized for NCE. NCE are not programmable. There can be several HW design issues for corner cases. For example, paddings for Pooling with even sized kernel (2x2, 4x4) can’t be calculated accurately.

 

When MYRIAD_ENABLE_HW_ACCELERATION is OFF, all kernels including Conv and Pooling are being run on SHAVEs. Based on the use-case or operations involved the flag MYRIAD_ENABLE_HW_ACCELERATION can be set to ON or OFF.

 

 

Regards,

Wan

 

0 Kudos
Wan_Intel
Moderator
613 Views

Hi Benguigui__Michael,

Thanks for reaching out to us.

 

This thread will no longer be monitored since we have provided an explanation. If you need additional information from Intel, please submit a new question.

 

 

Regards,

Wan

 

0 Kudos
Reply