Skip to content

[Bug][VM] Performance degradation of non_max_suppression layer on VM #15405

Description

@echuraev

non_max_suppression works much faster on GraphExecutor in comparison with VirtualMachine.

Expected behavior

I suppose that the performance should be the same for VM and GE.

Actual behavior

On my CPU (Intel Core i7-7700K) non_max_suppression works 3 times slower on VM (1066.29 ms) vs GE (359.79 ms).
Tried to analyze this problem by using VTune Amplifier. And saw that about 70% of the execution time some work was done in lib.so (the name of the compiled model).
image

In GE we don't have such overhead.

Environment

Linux OS, latest mainline.

Steps to reproduce

You can use the following script to reproduce this problem. I changed its extension to .txt because .py file cannot be uploaded to GitHub.
reproducer.txt

On the top of the source code, you can change the value of variable USE_VM to specify if the layer should be inferred on VM or on GE.

Triage

Please refer to the list of label tags here to find the relevant tags and add them below in a bullet format (example below).

  • flow:vm

Metadata

Metadata

Assignees

No one assigned

    Labels

    flow:vmneeds-triagePRs or issues that need to be investigated by maintainers to find the right assignees to address ittype: bug

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions