DirectML のバージョン履歴

DirectML は Windows のシステム コンポーネントとして配布され、Windows 10 バージョン 1903 (10.0、ビルド 18362) 以降の Windows オペレーティング システム (OS) の一部として使用できます。

DirectML バージョン 1.4.0 以降では、DirectML はスタンドアロンの再頒布可能パッケージ (「Microsoft.AI.DirectML」 を参照) としても使用できます。これは、固定バージョンの DirectML を使用するアプリケーションや、古いバージョンの Windows 10 で実行する場合に便利です。

DirectML は、セマンティック バージョニング規約従います。 つまり、バージョン番号はフォーム major.minor.patch に従います。 DirectML の最初のリリースのバージョンは 1.0.0 です。

バージョン表

DirectML バージョン サポートされている機能レベル (「DirectML 機能レベルの履歴」を参照) DML_TARGET_VERSION (OS) 以降で使用可能 (再頒布可能パッケージ) 以降で使用可能
1.13.0 DML_FEATURE_LEVEL_6_2 0x6200 該当なし DirectML-1.13.0
1.12.0 DML_FEATURE_LEVEL_6_1 0x6100 該当なし DirectML-1.12.0
1.11.0 DML_FEATURE_LEVEL_6_0 0x6000 該当なし DirectML-1.11.0
1.10.0 DML_FEATURE_LEVEL_5_2 0x5200 該当なし DirectML-1.10.0
1.9.0 DML_FEATURE_LEVEL_5_1 0x5100 該当なし DirectML-1.9.0
1.8.0 DML_FEATURE_LEVEL_5_0 0x5000 Windows 11 (ビルド 10.0.22621、22H2) DirectML-1.8.0
1.7.0 DML_FEATURE_LEVEL_4_1 0x4100 該当なし DirectML-1.7.0
1.6.0 DML_FEATURE_LEVEL_4_0 0x4000 Windows 11 (ビルド 10.0.22000、21H2) DirectML-1.6.0
1.5.0 DML_FEATURE_LEVEL_3_1 0x3100 該当なし DirectML-1.5.0
1.4.01 DML_FEATURE_LEVEL_3_0 0x3000 該当なし DirectML-1.4.0
1.1.0 DML_FEATURE_LEVEL_2_0 0x2000 Windows 10、バージョン 2004 (10.0、ビルド 19041) (Windows 10 2020 年 5 月更新)。 別名 "20H1"。 該当なし
1.0.0 DML_FEATURE_LEVEL_1_0 0x1000 Windows 10、バージョン 1903 (10.0、ビルド 18362) (Windows 10 2020 年 5 月更新)。 別名 "19H1"。 該当なし

1 DirectML の 1.2.0 および 1.3.0 中間リリースは、広く利用できませんでした。

DirectML ターゲット バージョンの選択

便宜上、DirectML.h ヘッダー ファイル内の特定の機能は、DML_TARGET_VERSION マクロの値に基づいて条件付きで宣言されます。 DML_TARGET_VERSION マクロを特定の値に設定することで、アプリケーションから一部の DirectML.h を除外できます。

これは、DirectML.h の新しいコピーを使用しているが、DirectML バイナリの下位バージョンをターゲットとしている場合に役立ちます。これは、選択したターゲット レベルを超える機能を使用しようとしてもコンパイルされないためです。 このメカニズムは NTDDI_VERSION マクロに似ています (「条件付き宣言のマクロ」を参照)。

DML_TARGET_VERSION マクロの有効な値を次に示します。

DML_TARGET_VERSION 結果
0x6200 1.13.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x6100 1.12.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x6000 1.11.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x5200 1.10.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x5100 1.9.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x5000 1.8.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x4100 1.7.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x4000 1.6.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x3100 1.5.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x3000 1.4.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x2000 1.1.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
0x1000 1.0.0 より新しいバージョンの DirectML を必要とする機能は DirectML.h から除外されます。
設定なし ターゲット バージョンが自動的に選択されます。 詳細については以下を参照してください。

DML_TARGET_VERSION が設定されていない場合は、次の方法で自動的に選択されます。

  • DML_TARGET_VERSION_USE_LATEST マクロが定義されている場合は、最新のターゲット バージョンが選択されます。
  • それ以外の場合は、NTDDI_VERSION マクロの値に基づいてターゲット バージョンが選択されます。
    • NTDDI_WIN10_ZN0x6000 のターゲット バージョンになります。
    • NTDDI_WIN10_NI0x5000 のターゲット バージョンになります。
    • NTDDI_WIN10_CO0x4000 のターゲット バージョンになります。
    • NTDDI_WIN10_FE0x3000 のターゲット バージョンになります。
    • NTDDI_WIN10_VB0x2000 のターゲット バージョンになります。
    • NTDDI_WIN10_19H10x1000 のターゲット バージョンになります。
    • NTDDI_VERSION が定義されていない場合は、(DML_TARGET_VERSION_USE_LATEST が指定されているかのように) 最新のターゲット バージョンが選択されます。

Windows ソフトウェア開発キット (SDK) のバージョン 10.0.19041.0 (Windows 10、バージョン 2004) を使用するアプリケーションについて考えてみましょう。 上の表から、これが対応する DirectML のバージョンは 1.1.0 で、対応する DML_TARGET_VERSION0x2000 です。

DML_TARGET_VERSION マクロも NTDDI_VERSION マクロも設定しない場合、選択したターゲット バージョンは既定で 0x2000 になり、DirectML.h のすべてのバージョンが使用できるようになります。

アプリケーションを Windows 10、バージョン 1903 (10.0、ビルド 18362) で実行できるようにする場合、#define DML_TARGET_VERSION 0x1000 ができ、DirectML バージョン 1.0.0 でサポートされていない DirectML.h のすべてのコンテンツが除外されます。 これにより、より大きなバージョンを必要とする機能を使用しようとすると、コンパイルに失敗します。

DirectML バージョンと機能レベル

DirectML バージョン (1.0.0、1.4.0 など) では、関連付けられている DirectML.h ヘッダー ファイルや .lib ファイルなど、DirectML の特定のリリースが記述されています。

機能レベル (たとえば、DML_FEATURE_LEVEL_1_0 または DML_FEATURE_LEVEL_2_0) は、API の基になる実装の機能を表します。これは、使用されているバージョン DirectML.h とは異なる場合があります。

たとえば、新しい SDK に対してビルドされているが、古いバージョンの Windows で実行されているアプリケーションでは、最新の SDK に対してコンパイルされている場合でも、(実行時に) サポートされる機能レベルが低くなる可能性があります。

関連項目