新しいAVX命令で遊んでみたいです。私 QEMUがサポートしているかもしれないのを見た 、それで私はそれをGitから構築した(昨日)。 CPUをSandyBridgeに設定し、Tiny CoreLinuxを起動しました。 TCLにはカーネル3.0があり、ウィキペディアは Linuxは2.6.30でAVXをサポートしています と主張しています。 TCLはBochsのAVXでも動作します。しかし、QEMUで実行しているときに/ proc/cpuinfoをcatすると、avxがflags
から欠落しています。
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel Xeon E312xx (Sandy Bridge)
stepping : 1
cpu MHz : 1861.924
cache size : 4096 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up pni cx16 popcnt hypervisor lahf_lm
bogomips : 3725.00
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
$
QEMUでAVXサポートを利用するにはどうすればよいですか?
定義された機能が利用できない場合、デフォルトでサイレントに失敗するようです( ソース )。 QemuはホストCPUでサポートされていないいくつかの命令セットをエミュレートできますが、AVXがそれらの中にあるかどうか(またはまだないかどうか)はわかりません。
Qemuで使用されるすべてのライブラリ、特にlibvirtが適切なレベルになっていることを確認してください。 -cpu sandyBridge,+avx,enforce
のqemu-kvmパラメーターを試すこともできます。 このスレッド が役立つかどうかも確認してください。
AVXおよびその他の新しい命令セット拡張機能のために、インテルはエミュレーターを提供しています。
インテルソフトウェア開発エミュレーター 。
AVXの経験を積むために、代わりにそれを使用することもできます。