Maratyszcza / NNPACK

Acceleration package for neural networks on multi-core CPUs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unsupported Hardware on VM with compatible CPU

RomainCendre opened this issue · comments

Hi everyone,
I'm having some issues with NNPack, but I didn't know where to start.
I'm getting the famous message Could not initialize NNPACK! Reason: Unsupported hardware that seems related to CPU that doesn't have AVX2 and 3-level cache. I also forgot to say that this error start since we were switching a virtual machine from CentOS to Ubuntu.
I start looking at CPU info inside the Ubuntu VM and it seems that AVX2 and cache are rightly detected.

So I'm wondering, can a library or something that can be missing that makes my CPU to be incorrectly driven?
Best regards

Also, the same code run perfectly on the host machine on Ubuntu 21 with NNPack... =/

So basically, the problem seems to be from VvirtualBox (something with AVX through virtualbox).
I didn't find the way to make it work from a Ubuntu host, but using VMWare player did the job instead.
Have a nice day

I ran into a similar issue, and it was related to the L3 cache.

I am running an Ubuntu 22.04 VM using KVM/QEMU/libvirt, with an AMD Ryzen CPU. After adjusting the CPU settings for the VM, the cache size shown with lscpu looked correct and I no longer hit this issue:

<cpu mode='host-passthrough'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
</cpu>

In particular it is the topoext feature that was required with QEMU for the VM to be correctly aware of the CPU topology. As far as I am aware this is only relevant for AMD CPUs. Sharing in case this may help you or someone else.