次の方法で共有


更新された最小ハードウェア要件

.NET 11 の最小ハードウェア要件が更新され、x86/x64 アーキテクチャと Arm64 アーキテクチャの両方で最新の命令セットが必要になります。 さらに、ReadyToRun (R2R) コンパイル ターゲットが更新され、新しいハードウェア機能が利用されました。

Arm64

Apple の場合、最小ハードウェアまたは ReadyToRun ターゲットに変更はありません。 Apple M1チップはarmv8.5-aとほぼ同等であるため、少なくともAdvSimd (NEON)、CRCDOTPRODLSERCPCRCPC2、およびRDMA命令セットのサポートが提供されます。

Linux の場合、最小ハードウェアに変更はありません。 .NET は、 AdvSimd 命令セットのサポートのみを提供する Raspberry Pi などのデバイスを引き続きサポートします。 ReadyToRunターゲットが更新され、LSE命令セットが含まれるため、アプリケーションを起動すると、追加のジッティング オーバーヘッドが発生する可能性があります。

Windows の場合、ベースラインが更新され、 LSE 命令セットが必要になります。 これは、 Windows 11 と、Windows 10正式にサポートされているすべての Arm64 CPU で必要です。 さらに、 Arm SBSA (サーバー ベース システム アーキテクチャ) の要件にインラインで対応しています。 ReadyToRunターゲットがarmv8.2-a + RCPCに更新されました (これにより、少なくともAdvSimdCRCLSERCPCRDMAがサポートされます)。これは、公式にサポートされているハードウェアの大部分をカバーします。

OS 以前の JIT/AOT の最小値 新しい JIT/AOT 最小値 以前の R2R ターゲット 新しい R2R ターゲット
林檎 Apple M1 (変更なし) Apple M1 (変更なし)
Linux armv8.0-a (変更なし) armv8.0-a armv8.0-a + LSE
ウィンドウズ armv8.0-a armv8.0-a + LSE armv8.0-a armv8.2-a + RCPC

x86/x64

3 つのオペレーティング システム (Apple、Linux、Windows) すべてについて、ベースラインは x86-64-v1 から x86-64-v2 に更新されます。 これにより、ハードウェアは、 CMOVCX8SSE、および SSE2 の保証のみから、 CX16POPCNTSSE3SSSE3SSE4.1、および SSE4.2の保証に変更されます。 この保証は、Windows 11 および Windows 10 で正式にサポートされているすべての x86/x64 CPU で必要です。 Intel/AMDによって正式にサポートされているすべてのチップが含まれています。最後の古いチップは2013年頃にサポート対象外になりました。

ReadyToRunターゲットは Windows および Linux 用にx86-64-v3に更新されましたが、Apple では変更されず、AVXAVX2BMI1BMI2F16CFMALZCNT、およびMOVBE命令セットも含まれます。

OS 以前の JIT/AOT の最小値 新しい JIT/AOT 最小値 以前の R2R ターゲット 新しい R2R ターゲット
林檎 x86-64-v1 x86-64-v2 x86-64-v2 (変更なし)
Linux x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3
ウィンドウズ x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3

導入されたバージョン

.NET 11 Preview 1

以前の動作

既定では、.NET は正常に起動し、古いハードウェアで実行されました。 個々のアプリケーションでは、上位のベースラインにオプトインしたり、シナリオのベースラインを引き上げた ハードウェア組み込みを 明示的に使用したりする場合があります。

新しい動作

.NET 11 以降では、.NET は古いハードウェアで実行できず、次のようなメッセージが出力される可能性があります。 (一部のシナリオでは、特定のオペレーティング システムとアーキテクチャの具体的なハードウェア要件を示す、よりわかりやすいメッセージが表示される場合があります)。

現在の CPU に 1 つ以上のベースライン命令セットがありません。

ReadyToRun対応アセンブリの場合、一般的なデバイスの予想されるサポートを満たしていない、サポートされているハードウェアによっては、追加のスタートアップ オーバーヘッドが発生する可能性があります。

破壊的変更の種類

この変更は 動作の変更です。

変更の理由

.NET では、多くの場合、基になるオペレーティング システム (OS) によって設定される最小ハードウェア要件を超える、幅広いハードウェアがサポートされています。 .NET には、JIT シナリオでアクティブに実行されているハードウェアを利用するためのサポートも組み込まれています。 ただし、このサポートにより、コードベースが大幅に複雑になります。特に、まだ使用される可能性が低いはるかに古いハードウェアの場合です。 さらに、AOT ターゲットが既定で必要とする "最低共通分母" を定義します。これにより、一部のドメイン固有のシナリオでは、アプリケーションのパフォーマンスが低下する可能性があります。

最小ベースラインの更新は、コードベースのメンテナンスの複雑さを軽減し、基になる OS の文書化された (および多くの場合に適用される) ハードウェア要件に合わせて行われました。

サポートされなくなったハードウェアを使用している場合は、更新を検討してください。 このようなハードウェアは正式にはサポートされていないため、.NET でサポートされているオペレーティング システムのバージョンでは起動しない可能性があります。

影響を受ける API

この変更は、すべての .NET に影響します。

こちらも参照ください