qemu(UTM)とRosettaを比較
今回は、Apple Siliconでのqemu(UTM)とRosettaを比較してみた。X86/64コード実行の比較である。
対象機種
対象Macは下記である。
略称 | 機種 | |
---|---|---|
1 | MiniM2 | Apple M2 3.5GHz 8Core CPU 10Core GPU, 24GB |
2 | AirM4 | Macbook Air 13inch, Apple M4 10Core CPU 10 Core GPU, 24GB |
環境
OS
”debian-12.11.0-amd64”を利用。ターゲットCPUは、X86/64である。
qemu
Macの仮想環境アプリケーションUTMのフレームワークであるqemuによりX86/64バイナリを実行する。インストールなどは省略。
docker
MacでのdockerはRosettaを使える。これにより、X86/64バイナリを実行する。起動方法などは省略。
Benchmarkツール
Unixbench
適宜、パッケージをインストール(apt install)し、Build&実行。
sysbench
こちらについては、”apt install”でインストールするのみ。後は起動。
結果&考察
早速ではあるが結果を下記する。それぞれ3回ほど実施したが、最大値を記載した。
Unixbench
数値はIndex Scoreである。大きい値ほど高性能。
機種 | qemu at UTM | Rosetta at docker |
---|---|---|
MiniM2 | 283.6 | 3205.1 |
AirM4 | 87.1 | 4179.1 |
RosettaはmacOS用にカスタマイズされているとは言え、ここまで両者に差があるとは想像していなかった。また、qemu実行に関して、高性能なはずのM4の方が遅いのも意外であった。
sysbench
それぞれのテストの数値の意味(単位)は下記となる。
- CPU: events per second
- Memory: MiB/sec
- Fileio: MiB/s
qemu at UTM
機種 | CPU | Memory | Fileio Read | Fileio Write |
---|---|---|---|---|
MiniM2 | 957.48 | 1388.99 | 58.63 | 39.09 |
AirM4 | 1146.85 | 1498.15 | 37.63 | 25.08 |
File ioテストでは、M4の方がM2より数値が低い。理由不明。
Rosetta at docker
機種 | CPU | Memory | Fileio Read | Fileio Write |
---|---|---|---|---|
MiniM2 | 7439.85 | 7148.64 | 170.83 | 113.88 |
AirM4 | 4478.27 | 4751.58 | 112.87 | 75.25 |
sysbenchでもRosettaの性能がqemuより圧倒的に優っている。M4の方が低数値な理由は不明(CPU/GPU以外のハードウェアの関連か?)。
終わりに
UTM上でX86/64のLinuxを動作させると、かなり遅く感じられる。Apple Silicon上で、どうしてもX86/64を使うのであれば、docker+Rosettaがよいのであろう。
EOF