web-dev-qa-db-ja.com

QEMUでAVXサポートを利用するにはどうすればよいですか?

新しい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サポートを利用するにはどうすればよいですか?

7
Janus Troelsen

定義された機能が利用できない場合、デフォルトでサイレントに失敗するようです( ソース )。 QemuはホストCPUでサポートされていないいくつかの命令セットをエミュレートできますが、AVXがそれらの中にあるかどうか(またはまだないかどうか)はわかりません。

Qemuで使用されるすべてのライブラリ、特にlibvirtが適切なレベルになっていることを確認してください。 -cpu sandyBridge,+avx,enforceのqemu-kvmパラメーターを試すこともできます。 このスレッド が役立つかどうかも確認してください。

AVXおよびその他の新しい命令セット拡張機能のために、インテルはエミュレーターを提供しています。
インテルソフトウェア開発エミュレーター
AVXの経験を積むために、代わりにそれを使用することもできます。

7
harrymc