719*_*016 4 virtualbox intel macbook-pro 15.10
我正在尝试编译一个使用来自相当新的 Intel Haswell 处理器的 AVX2 指令的程序。
我已经检查过我使用的 Macbook Pro 有一个 Crystalwell 处理器,它应该有这样的 AVX2 扩展:
sysctl -n machdep.cpu.brand_string
Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Run Code Online (Sandbox Code Playgroud)
我的目的是使用 Ubuntu 15.10 64 位版本 VirtualBox 映像编译此类程序,该映像具有最新版本的 gcc:
gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
Run Code Online (Sandbox Code Playgroud)
当我检查 VirtualBox 机器中的扩展时,我没有看到列出了 avx2:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 70
model name : Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
stepping : 1
cpu MHz : 2494.226
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm
bugs :
bogomips : 4988.45
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我也在问自己同样的问题。不久前我通读了 VirtualBox 文档的主要部分,并记得 SSE4.1/SSE4.2 有很好的文档记录,但 AVX2 没有,尽管自VirtualBox 5.0 Beta 3以来预计它会暴露给来宾。
以下是 14.04 主机上 /proc/cpuinfo 的标志:
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 arch_perfmon pebs bts rep_good nopl
xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64
monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1
sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c
rdrand lahf_lm abm ida arat pln pts dtherm tpr_shadow vnmi
flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms
invpcid xsaveopt
Run Code Online (Sandbox Code Playgroud)
在 VirtualBox 5.0.14 托管的虚拟机上
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm
constant_tsc rep_good nopl xtopology nonstop_tsc pni pclmulqdq
ssse3 cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx rdrand
hypervisor lahf_lm abm
Run Code Online (Sandbox Code Playgroud)
我在互联网上搜索并下载了源代码,这让我看到了这张票,其中frank(我假设是 Frank Mehnert)解释了如何禁用 AVX,并且这张票在变更日志中注明是从 5.0.2 开始暂时禁用 AVX2 直通的原因。所以有理由禁用它,你应该小心。
我跑了VBoxManage setextradata "$vm_name" VBoxInternal/CPUM/IsaExts/AVX2 1
,启动了我的虚拟机并启用了 AVX2:
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm
constant_tsc rep_good nopl xtopology nonstop_tsc pni pclmulqdq
ssse3 cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx rdrand
hypervisor lahf_lm abm avx2
Run Code Online (Sandbox Code Playgroud)
要检查我在 VM 中运行了 x265:
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 LZCNT
Run Code Online (Sandbox Code Playgroud)
我环顾四周,如果别的东西可以被启用,grep -r -i "search_term" .
在源也带来了一些结果的搜索字词pIsaExts
,pExtFeatureLeaf
,pFeatures
,pCurLeaf
和pCpumCfg
,但增加键要么没有效果或VM拒绝开始。说到这里,要查看您设置的所有额外键,请运行:
VBoxManage getextradata "$vm_name" enumerate
Run Code Online (Sandbox Code Playgroud)
要删除一个键,只需运行与设置键相同的命令,但没有值,例如:
VBoxManage setextradata "$vm_name" VBoxInternal/CPUM/IsaExts/AVX2
Run Code Online (Sandbox Code Playgroud)
与其只是通过源代码搜索,不如阅读和理解项目的源代码组织。
归档时间: |
|
查看次数: |
11434 次 |
最近记录: |