我已经研究这个问题好几天了。简而言之,Oracle VirtualBox 从 5.0.3 版本开始支持 avx 和 avx2。现在是 2016 年 1 月 6 日,所以遥遥领先。
我在配备 Intel Core i7 4790K 的台式机上的 VirtualBox Ubuntu 中安装 TensorFlow 时遇到了很多问题。在对来宾中未启用 avx/avx2 进行大量调查后,我将其归结为这一点。当我more /proc/cpuinfo | grep flags
输入 bash shell时,我的 CPU 标志证明了这一点。
我已经研究过可能的解决方案(1,2,3)并运行它们。它们Key: VBoxInternal/CPUM/IsaExts/AVX2 1
按预期显示。但当我more /proc/cpuinfo | grep flags
在 bash shell 中输入 时,它仍然没有显示。
与前面的问题最重要的区别是它确实有效,并且 avx(2) DO 显示在我的 i7-8565U 新款笔记本电脑中,一切都运行良好。我已确保在 BIOS 上启用 Intel 虚拟化,切换到 KVM 半虚拟化等,并尽一切努力使它们相同。但是,它在我的 4790K 计算机上不起作用。
需要澄清的是,两种 CPU 根据其规格都支持 AVX。
答案1
我在张量流方面也遇到了同样的问题。我发现在 Windows 功能下启用 Hyper-V 是问题所在(主机系统是 Windows 10)。禁用它后,我还禁用了适用于 Linux 的 Windows 子系统,因为我并没有使用它,然后重新启动了我的笔记本电脑并在 VirtualBox (6.1.22) 上重新启动了 Ubuntu 18 VM。此后它会自动识别 AVX2 功能。