Introduction
This article discusses the issue of AVX-512 processor instructions not being passed from a Ubuntu 24.04 host system running VirtualBox to a Ubuntu 24.10 guest system, even though the host system's processor supports AVX-512 instructions.
Background
Advanced Vector Extensions 512-bit (AVX-512) is a set of instructions introduced by Intel for its processors to handle high-performance computing tasks. These instructions can significantly improve the performance of scientific simulations, data analytics, machine learning algorithms, and other compute-intensive workloads.
Problem Description
The problem arises when a user wants to utilize AVX-512 instructions within a guest system (e.g., Ubuntu 24.10) running on a host system (e.g., Ubuntu 24.04) that supports AVX-512 but doesn't pass these instructions through VirtualBox to the guest system.
Host System Configuration
The host system in our case is Ubuntu 24.04, with a processor that supports AVX-512 instructions. You can verify this by checking the output of the following command:
grep avx512 /proc/cpuinfo
If your system supports AVX-512, you should see output similar to the following:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt clwb intel_pt avx512f avx512dq rdseed clwb avx512cd avx512bw avx512vl avx512ifma avx512vpcl avx512bitalg avx512vnni avx512gf xsaveopt xsavec xgetbv1 xfnovapei xsaveerptr arat pln pts dpbs smap clzero irpermd invpcid_mult rdseed clwb avx512f avx512dq avx512cd avx512bw avx512vl avx512ifma avx512vpcl avx512bitalg avx512vnni avx512gf xsaveopt xsavec xgetbv1 xfnovapei xsaveerptr arat pln pts dpbs smap clzero irpermd invpcid_mult rdseed clwb avx512f avx512dq avx512cd avx512bw avx512vl avx512ifma avx512vpcl avx512bitalg avx512vnni avx512gf xsaveopt xsavec xgetbv1 xfnovapei xsaveerptr arat pln pts dpbs smap clzero irpermd invpcid_mult rdseed clwb avx512f avx512dq avx512cd avx512bw avx512vl avx512ifma avx512vpcl avx512bitalg avx512vnni avx512gf xsaveopt xsavec xgetbv1 xfnovapei xsaveerptr arat pln pts dpbs smap clzero irpermd invpcid_mult rdseed clwb avx512f avx512dq avx512cd avx512bw avx512vl avx512ifma avx512vpcl avx512bitalg avx512vnni avx512gf xsaveopt xsavec xgetbv1 xfnovapei xsaveerptr arat pln pts dpbs smap clzero irpermd invpcid_mult rdseed clwb avx512f avx512dq avx512cd avx512bw avx512vl avx512ifma avx512vpcl avx512bitalg avx512vnni avx512gf xsaveopt xsavec xgetbv
Guest System Configuration
The guest system is Ubuntu 24.10, and we have enabled the virtual hardware features related to AVX-512 in VirtualBox, as shown in Figure 1.

However, when trying to run a program that uses AVX-512 instructions in the guest system, it fails with an error message such as:
illegal instruction
Reason for the Problem
Although the host system's processor supports AVX-512, VirtualBox does not automatically pass AVX-512 instructions to the guest system. This is likely due to VirtualBox not fully supporting AVX-512 on all host systems.
Solution
Unfortunately, as of now, there is no native way to enable AVX-512 instructions in VirtualBox for a guest system. You can use one of the following workarounds:
Workaround 1: Use QEMU
QEMU supports AVX-512 and allows you to pass AVX-512 instructions to a guest system. You could create a QEMU virtual machine running Ubuntu 24.10 using the following command:
qemu-system-x86_64 -m 4096 -smp 4 -cpu host -enable-kvm -drive if=none,id=hd,file=ubuntu24.10.qcow2,format=qcow2 -device virtio-blk-device,drive=hd -device virtio-net-device -cdrom /path/to/ubuntu24.10.iso -boot d
This command assumes the following:
- You have a QCOW2 disk image (ubuntu24.10.qcow2) for the Ubuntu 24.10 guest system.
- You have the Ubuntu 24.10 ISO image (ubuntu24.10.iso) at the specified location.
You can then install Ubuntu 24.10 using the ISO image and start using AVX-512 instructions within the guest system.
Workaround 2: Use a Bare Metal Hypervisor
Another solution is to replace VirtualBox with a bare-metal hypervisor such as KVM or VMware ESXi that supports AVX-512 and passes these instructions through to the guest system.
In this article, we discussed the issue of VirtualBox not passing AVX-512 instructions to a guest system despite the host system supporting AVX-512 instructions. We covered the reasons for this problem and provided two workarounds: using QEMU or a bare metal hypervisor.