Partager via


Historique des versions DirectML

DirectML est distribué en tant que composant système de Windows et est disponible dans le cadre du système d’exploitation Windows dans Windows 10, version 1903 (10.0 ; Build 18362) et plus récent.

À partir de la version 1.4.0 de DirectML, DirectML est également disponible en tant que package redistribuable autonome (voir Microsoft.AI.DirectML), ce qui est utile pour les applications qui souhaitent utiliser une version fixe de DirectML ou lorsqu’elles s’exécutent sur des versions antérieures de Windows 10.

DirectML suit les conventions de gestion sémantique des versions . C’est-à-dire que les numéros de version suivent la forme major.minor.patch. La première version de DirectML dispose d’une version 1.0.0.

Tableau des versions

Version de DirectML Niveau de fonctionnalité pris en charge (voir l’historique des niveaux de fonctionnalité DirectML) DML_TARGET_VERSION Première disponibilité en (OS) Disponible pour la première fois en (Redistribuable)
1.15.4 DML_FEATURE_LEVEL_6_4 0x6400 N/A DirectML-1.15.4
1.15.3 DML_FEATURE_LEVEL_6_4 0x6400 N/A DirectML-1.15.3
1.15.2 DML_FEATURE_LEVEL_6_4 0x6400 N/A DirectML-1.15.2
1.15.1 DML_FEATURE_LEVEL_6_4 0x6400 N/A DirectML-1.15.1
1.15.0 DML_FEATURE_LEVEL_6_4 et DML_FEATURE_LEVEL_6_3 0x6400 ou 0x6300 N/A DirectML-1.15.0
1.13.1 DML_FEATURE_LEVEL_6_2 0x6200 N/A DirectML-1.13.1
1.13.0 DML_FEATURE_LEVEL_6_2 0x6200 N/A DirectML-1.13.0
1.12.0 DML_FEATURE_LEVEL_6_1 0x6100 N/A DirectML-1.12.0
1.11.0 DML_FEATURE_LEVEL_6_0 0x6000 N/A DirectML-1.11.0
1.10.0 DML_FEATURE_LEVEL_5_2 0x5200 N/A DirectML-1.10.0
1.9.0 DML_FEATURE_LEVEL_5_1 0x5100 N/A DirectML-1.9.0
1.8.0 DML_FEATURE_LEVEL_5_0 0x5000 Windows 11 (build 10.0.22621 ; 22H2) DirectML-1.8.0
1.7.0 DML_FEATURE_LEVEL_4_1 0x4100 N/A DirectML-1.7.0
1.6.0 DML_FEATURE_LEVEL_4_0 0x4000 Windows 11 (build 10.0.22000 ; 21H2) DirectML-1.6.0
1.5.0 DML_FEATURE_LEVEL_3_1 0x3100 N/A DirectML-1.5.0
1.4.01 DML_FEATURE_LEVEL_3_0 0x3000 N/A DirectML-1.4.0
1.1.0 DML_FEATURE_LEVEL_2_0 0x2000 Windows 10, version 2004 (10.0 ; Build 19041) (mise à jour de mai 2020 de Windows 10). alias « 20H1 ». N/A
1.0.0 DML_FEATURE_LEVEL_1_0 0x1000 Windows 10, version 1903 (10.0 ; Build 18362) (mise à jour de mai 2019 de Windows 10). alias « 19H1 ». N/A

1 Les versions intermédiaires 1.2.0 et 1.3.0 de DirectML n’ont pas été largement disponibles.

Sélection d’une version cible de DirectML

Pour plus de commodité, certaines fonctionnalités du fichier d’en-tête sont déclarées conditionnellement DirectML.h en fonction de la valeur de la DML_TARGET_VERSION macro. En définissant la DML_TARGET_VERSION macro sur certaines valeurs, vous pouvez exclure des parties de DirectML.h votre application.

Cela peut être utile si vous utilisez une copie plus récente de DirectML.h, mais que vous ciblez une version inférieure du binaire DirectML, car cela garantit que toute tentative d’utilisation de fonctionnalités au-delà du niveau cible choisi ne sera pas compilée. Ce mécanisme est similaire à la NTDDI_VERSION macro (voir Macros pour les déclarations conditionnelles).

Voici les valeurs valides pour la DML_TARGET_VERSION macro.

DML_TARGET_VERSION Résultat
0x6400 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.15.0 sont exclues de .DirectML.h
0x6300 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.15.0, ou qui sont DML_FEATURE_LEVEL_6_4 fonctionnalités, sont exclues de DirectML.h.
0x6200 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.13.0 sont exclues de .DirectML.h
0x6100 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.12.0 sont exclues de DirectML.h.
0x6000 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.11.0 sont exclues de .DirectML.h
0x5200 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.10.0 sont exclues de .DirectML.h
0x5100 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.9.0 sont exclues de .DirectML.h
0x5000 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.8.0 sont exclues de .DirectML.h
0x4100 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.7.0 sont exclues de .DirectML.h
0x4000 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.6.0 sont exclues de .DirectML.h
0x3100 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.5.0 sont exclues de .DirectML.h
0x3000 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.4.0 sont exclues de .DirectML.h
0x2000 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.1.0 sont exclues de .DirectML.h
0x1000 Toutes les fonctionnalités qui nécessitent une version de DirectML plus récente que la version 1.0.0 sont exclues de DirectML.h.
Non défini La version cible est sélectionnée automatiquement pour vous. Voir les détails ci-dessous.

S’il DML_TARGET_VERSION n’est pas défini, il est sélectionné automatiquement par les éléments suivants.

  • Si la DML_TARGET_VERSION_USE_LATEST macro est définie, la dernière version cible est sélectionnée.
  • Sinon, la version cible est sélectionnée en fonction de la valeur de la NTDDI_VERSION macro.
    • NTDDI_WIN10_ZN aboutit à une version cible de 0x6000.
    • NTDDI_WIN10_NI aboutit à une version cible de 0x5000.
    • NTDDI_WIN10_CO aboutit à une version cible de 0x4000.
    • NTDDI_WIN10_FE aboutit à une version cible de 0x3000.
    • NTDDI_WIN10_VB aboutit à une version cible de 0x2000.
    • NTDDI_WIN10_19H1 aboutit à une version cible de 0x1000.
    • Si NTDDI_VERSION n’est pas défini, la dernière version cible est sélectionnée (comme si elle DML_TARGET_VERSION_USE_LATEST était spécifiée).

Exemple :

Prenons l’exemple d’une application utilisant la version 10.0.19041.0 (Windows 10, version 2004) du Kit de développement logiciel (SDK) Windows. D’après le tableau ci-dessus, la version de DirectML à laquelle cela correspond est 1.1.0, et la correspondante DML_TARGET_VERSION est 0x2000.

Si vous ne définissez ni les DML_TARGET_VERSION macros, la NTDDI_VERSION version cible sélectionnée sera par défaut 0x2000, et tout ce qu’il contient DirectML.h sera disponible.

Si vous souhaitez que votre application puisse s’exécuter sur Windows 10, version 1903 (10.0 ; Build 18362), vous pourriez #define DML_TARGET_VERSION 0x1000, ce qui exclura tout le contenu DirectML.h qui n’est pas pris en charge par DirectML version 1.0.0. Cela garantit que toute tentative d’utilisation d’une fonctionnalité nécessitant une version supérieure échouera à la compilation.

Version de DirectML par rapport au niveau de la fonctionnalité

La version de DirectML (par exemple, 1.0.0 ou 1.4.0) décrit une version particulière de DirectML, y compris son fichier d’en-tête et .lib son fichier associésDirectML.h.

Le niveau de fonctionnalité (par exemple, DML_FEATURE_LEVEL_1_0, ou DML_FEATURE_LEVEL_2_0) décrit la capacité de l’implémentation sous-jacente de l’API, qui peut varier de la version utilisée DirectML.h .

Par exemple, une application créée sur la base d’un SDK plus récent, mais s’exécutant sur une version antérieure de Windows, peut (au moment de l’exécution) voir un niveau de fonctionnalité pris en charge inférieur, même si elle est compilée sur le dernier SDK.

Voir aussi