Windows Insider Preview

Windows on Armのx86/x64エミュ「Prism」がAVX/AVX2命令に対応、いよいよ製品版OSに投入

AVX必須のクリエイティブツール・ゲームなど、並列処理を多用するアプリが動作

 このコーナーでは、「Windows 11 Insider Preview」ビルドでテストされている最新のOS機能を紹介します。ただし、テストの結果、紹介した機能が製品版OSに搭載されないこともあります。あらかじめご留意ください。

「Prism」エミュレーションの設定はプロパティダイアログの[互換性]タブにある。Arm64ネイティブアプリは実行の際にエミュレーションが不要なので、当然のことながらグレーアウト(無効化)されている

 「Windows 11 バージョン 24H2/25H2」の2025年11月プレビューパッチ「KB5070311」では「Windows on Arm」に搭載されているエミュレーター「Prism」が拡張されており、新たにAVX/AVX2を含む拡張命令セット(BMI、FMA、F16Cなど)がサポートされている。これまで動作しなかったAVX必須のクリエイティブツールやゲームなど、並列処理を多用するアプリが利用可能になる、画期的な改善だ。米Microsoftが12月6日(現地時間)、その詳細を公式ブログ「Windows OS Platform Blog」で紹介している。

これまで動作しなかったAVX必須のクリエイティブツールやゲームなど、並列処理を多用するアプリが利用可能に

 「Prism」は、Intel/AMDプロセッサー向けにコンパイルされたバイナリを、Arm64プロセッサーでそのまま動かせるようにするエミュレーター。Windows 10ではx86(32bit)バイナリしかエミュレーション実行することができなかったが、Windows 11ではx64(64bit)バイナリも動かせる。とくにQualcommの「Snapdragon」プロセッサーならば特別な最適化やチューニングが施されているため、動作は高速だ。さらに最新の「Snapdragon X」シリーズならば内蔵のハードウェア機能をフル活用できる。

x86(32bit)バイナリとx64(64bit)バイナリのオプションの比較。[x64 エミュレーション機能を非表示にする]というオプションはx86バイナリでのみ利用可能で、有効にするとWindows 10時代のエミュレーションを行う

 「Prism」エミュレーションは、x86/x64命令のコードブロックをその場でArm64命令に変換(JIT)し、OSはその変換コードをArm64プロセッサーで処理する仕組みとなっている。命令を変換する処理には多少のオーバーヘッドがあるが、それをキャッシュして、次にそのコードを実行する際にオーバーヘッドを削減する最適化を実施するのも「Prism」の役割だ。

 x86/x64命令とArm64命令に完全な対応関係はないので、キャッシュや最適化技術を積極的に活用して速度を優先するか、保守的な変換にとどめて安全性を重視するかをユーザー側で決めることもできる。関連するオプションはプロパティダイアログの[互換性]タブにある[エミュレーション設定の変更]ダイアログにまとめられているが、通常は[既定]の設定で問題はないだろう。「Prism」は継続的に改善されており、既定の設定にはときどき変更が入るが、その影響で以前は動作していたx86/x64バイナリが動作しなくなったときだけ、オプションをより安全性の高い方へ変更してみるとよい。

[既定]のエミュレーション設定は、高速性を重視してときどき見直されている。以前は動作していたx86/x64バイナリが動作しなくなったときは、オプションをより安全性の高い方へ変更してみるとよい

「KB5070311」における改善

 「KB5070311」では、新たにAVX/AVX2を含む拡張命令セット(BMI、FMA、F16Cなど)がサポートされている。新しい命令セットのサポートは、エミュレーション設定ダイアログの[新しいエミュレートされた CPU 機能の表示]というチェックボックスをONにすると有効になる。編集部環境ではOFFになっていたが、今後はx64(64bit)アプリで既定有効になるようだ。x86(32bit)アプリでは今後も手動で有効にする必要がある。

[新しいエミュレートされた CPU 機能の表示]オプション

 新しい命令セットが有効になっているかどうかは「Coreinfo」というSysinternalsツールで確認できる。

[新しいエミュレートされた CPU 機能の表示]がOFFの場合
[新しいエミュレートされた CPU 機能の表示]がONの場合。対応するCPU命令セットが増えていることがわかる