Intel 12世代 CPU Alder Lake 向けの VMware Workstation Player 最適化を紹介します。対象となるOS は Windows11です。
1. はじめに
Alder Lake では 2種類のコアを搭載した big.LITTLE 方式が採用されました。高性能コア(Pコア)と高効率コア(Eコア)の2種類です。スレッドの状況からこの2つのコアに割り当てることが必要とされます。Windows11はこの割り当てに対応しています。
しかし、VMware Workstation Player 16.2.4 では適切な対応ができておらず、すべてEコア が割り当てられてしまいます。
2. 最適化方法
いくつか対策方法があり、それによりコアの使われ方が変わります。
検証環境
CPU に Core i5 1235U を用います。Pコア2個(スレッド4)、Eコア8個(スレッド8)で、スレッド計 12個の構成です。
仮想マシンに4コアを割りあて、7zipのベンチマークを4スレッドで実行し、どのコアに割り当てられているかみていきます。
2.1 初期状態
初期状態の電源モードは「バランス」です。
Pコアは使われずに、Eコアのみが使われていることがわかります。
7zip ベンチマーク値は 14,419 です。
2.1 電源モード「最適なパフォーマンス」
設定→システム→電源とバッテリの「電源モード」を「最適なパフォーマンス」に設定します。
これにより、Pコアが2個使われています。Core i5 1235Uは コア数は2個のため、のこりはEコアから配分されています。かなりこまめにスレッドが切り替わるのか、Eコアが4個くらい割り当てられているようにも見えます。
7zip ベンチマーク値は 20,892 です。
2.2 すべてPコアに割り当てる
vmx ファイルで、どのコアを使用するか具体的に設定します。Core i5 1235U では、0~3がPコア、4~11がEコアです。
Processor0.use = "TRUE" Processor1.use = "TRUE" Processor2.use = "TRUE" Processor3.use = "TRUE" Processor4.use = "FALSE" Processor5.use = "FALSE" Processor6.use = "FALSE" Processor7.use = "FALSE" Processor8.use = "FALSE" Processor9.use = "FALSE" Processor10.use = "FALSE" Processor11.use = "FALSE"
7zip ベンチマーク値は 15,038 です。(バランス設定時)
7zip ベンチマーク値は 20,004 です。(最適なパフォーマンス時)
コアの割り当てで注意点があります。
・コア数の設定とTRUEの個数を一致させること
・Pコア、Eコアを混在させる場合は、電源モードを「最適なパフォーマンス」にしなければなりません。バランスだとEコアしか使われません。
2.3 すべて Eコアに割り当てる
参考に、すべてEコアに割り当てもやっておきましょう。vmxファイルを設定します
Processor0.use = "FALSE" Processor1.use = "FALSE" Processor2.use = "FALSE" Processor3.use = "FALSE" Processor4.use = "TRUE" Processor5.use = "TRUE" Processor6.use = "TRUE" Processor7.use = "TRUE" Processor8.use = "FALSE" Processor9.use = "FALSE" Processor10.use = "FALSE" Processor11.use = "FALSE"
7zip ベンチマーク値は 15,796 です。(バランス設定時)
7zip ベンチマーク値は 18,853 です。(最適なパフォーマンス時)
3. まとめ
7zip のベンチマーク結果をまとめると以下になります。
バランス | 最適なパフォーマンス | |
---|---|---|
2.1 初期状態 | 14,419 | - |
2.1 電源モード「最適なパフォーマンス」 | - | 20,892 |
2.3 Pコアのみ | 15,038 | 20,004 |
2.4 Eコアのみ | 15,796 | 18,853 |
vmxは変更せずに、電源モードを「最適なパフォーマンス」に変更する方法が性能が高いです。
バランス設定でのPコア、Eコアで逆転現象が起きていますが、1235U はPコアが2個しかないため、SMTにより4スレッドを割り当てているのに対し、Eコアは4コアあるのが効いたようです。
Pコアが潤沢なCPUでは、Pコアのみで構成するのも有効だと思いますので、それぞれの環境で試してみるといいでしょう。
4. 最後に
VMware 社からは Alder Lake に対する公式な見解がいまだ出ていないようです。早く公式対応してくれるといいのですが。