0

I have a customer, who is reporting a "illegal instruction" exception crash for an AVX512 instruction on i9-10920X, which should (according to intel's page) fully support AVX512. Any ideas what could be causing this? Perhaps AVX512 can be disabled in BIOS and still the app can detect its presence or something?

Here's a call stack, just in case that would be interesting: call stack

mrzacek mrzacek
  • 308
  • 2
  • 12
  • 1
    Are you running in a VM? Many VMs don't default to passing through all ISA extensions supported by the CPU (so the VM instance can be migrated to less-capable CPUs). You should check CPUID; if the (virtualized) CPUID isn't reporting AVX-512 support, the OS won't set the appropriate control register bits to make AVX-512 instructions not fault. ([i9-10920X](https://ark.intel.com/content/www/us/en/ark/products/198012/intel-core-i910920x-xseries-processor-19-25m-cache-3-50-ghz.html) is a Cascade Lake CPU; it does support AVX-512.) – Peter Cordes Mar 27 '22 at 20:01
  • What OS are they running? Possibly something so old it doesn't know about AVX-512? New architectural state that needs to be saved/restored on context switch also comes with a control register bit that needs to be enabled for it to not fault, so the failure mode on old OSes with programs that only check for CPU support, not OS support, is an illegal instruction, not data corruption. As in [AVX feature detection using SIGILL versus CPU probing](https://stackoverflow.com/q/44144763) for AVX1 detection. – Peter Cordes Mar 27 '22 at 20:16
  • Thanks for the reply Peter! It's not a VM, but it may be an old Windows 7, I'm checking with the customer! – mrzacek mrzacek Mar 29 '22 at 10:27
  • 1
    Ok, so Windows 7 indeed! I suppose that explains it. – mrzacek mrzacek Apr 01 '22 at 10:15

0 Answers0