我有Oracle VirtualBox 4.3.8 RC1并安装了Debian的稳定版本。
使用此版本的VirtualBox,我可以使用此命令启用SSE4.1和SSE4.2:
VBoxManage setextradata" VM名称" VBoxInternal / CPUM / SSE4.1 1
我想编译dpdk http://dpdk.org,但是有一个错误:
"隐式声明函数'_mm_popcnt_u32'
当我用
查看标志时cat / proc / cpuinfo
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 pni ssse3 sse4_1 sse4_2 lahf_lm
没有" popcnt"。为什么?我能启用它还是我做错了什么?
由于
答案 0 :(得分:0)
您可以使用__builtin_popcountll
替换_mm_popcnt_u32
,这样只会引入和使用sse3内在函数
见这里: http://permalink.gmane.org/gmane.comp.networking.dpdk.devel/4560
答案 1 :(得分:0)
我的情况:带有 Hyper-V 的 VirtualBox v6.1.22 缺少 POPCNT
。
VBoxManage setextradata VMName VBoxInternal/CPUM/IsaExts/POPCNT
它有效。