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 versions ultérieures.

À compter de DirectML version 1.4.0, DirectML est également disponible en tant que package redistribuable autonome (voir Microsoft.AI.DirectML), qui est utile pour les applications qui souhaitent utiliser une version fixe de DirectML ou lors de l’exécution sur des versions antérieures de Windows 10.

DirectML suit les conventions de gestion sémantique de version. Autrement dit, les numéros de version suivent le formulaire major.minor.patch. La première version de DirectML a une version 1.0.0.

Table de version

Version DirectML Niveau de fonctionnalité pris en charge (consultez Historique du niveau de fonctionnalité DirectML) DML_TARGET_VERSION Disponible pour la première fois sous (OS) Disponible pour la première fois dans (Redistribuable)
1.13.0 DML_FEATURE_LEVEL_6_2 0x6200 S/O DirectML-1.13.0
1.12.0 DML_FEATURE_LEVEL_6_1 0x6100 S/O DirectML-1.12.0
1.11.0 DML_FEATURE_LEVEL_6_0 0x6000 S/O DirectML-1.11.0
1.10.0 DML_FEATURE_LEVEL_5_2 0x5200 S/O DirectML-1.10.0
1.9.0 DML_FEATURE_LEVEL_5_1 0x5100 S/O DirectML-1.9.0
1.8.0 DML_FEATURE_LEVEL_5_0 0x5000 Windows 11 (version 10.0.22621 ; 22H2) DirectML-1.8.0
1.7.0 DML_FEATURE_LEVEL_4_1 0x4100 S/O DirectML-1.7.0
1.6.0 DML_FEATURE_LEVEL_4_0 0x4000 Windows 11 (version 10.0.22000 ; 21H2) DirectML-1.6.0
1.5.0 DML_FEATURE_LEVEL_3_1 0x3100 S/O DirectML-1.5.0
1.4.01 DML_FEATURE_LEVEL_3_0 0x3000 S/O 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). Aka « 20H1 ». S/O
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). Aka « 19H1 ». S/O

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

Sélection d’une version cible DirectML

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

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

Voici les valeurs valides pour la macro DML_TARGET_VERSION.

DML_TARGET_VERSION Effet
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.

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

  • Si la macro DML_TARGET_VERSION_USE_LATEST 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 macro NTDDI_VERSION.
    • NTDDI_WIN10_ZN génère une version cible de 0x6000.
    • NTDDI_WIN10_NI génère une version cible de 0x5000.
    • NTDDI_WIN10_CO génère une version cible de 0x4000.
    • NTDDI_WIN10_FE génère une version cible de 0x3000.
    • NTDDI_WIN10_VB génère une version cible de 0x2000.
    • NTDDI_WIN10_19H1 génère une version cible de 0x1000.
    • Si NTDDI_VERSION n’est pas définie, la dernière version cible est sélectionnée (comme si DML_TARGET_VERSION_USE_LATEST était spécifiée).

Exemple

Considérez une application qui utilise la version 10.0.19041.0 (Windows 10, version 2004) du Kit de développement logiciel Windows (Kit SDK Windows). Dans le tableau ci-dessus, la version de DirectML est la version correspondant à la 1.1.0 et la valeur correspondante DML_TARGET_VERSION est 0x2000.

Si vous ne définissez ni DML_TARGET_VERSION ni les macros NTDDI_VERSION, la version cible sélectionnée sera 0x2000 par défaut, et tout ce qui se trouve dans DirectML.h sera disponible à l’utilisation.

Si vous souhaitez que votre application puisse s’exécuter sur Windows 10, version 1903 (10.0 ; Build 18362), vous pouvez #define DML_TARGET_VERSION 0x1000, ce qui exclue tout le contenu dans DirectML.h qui n’est pas pris en charge par DirectML version 1.0.0. Cela garantit que toute tentative d’utilisation des fonctionnalités nécessitant une version plus élevée échoue à compiler.

Version DirectML et niveau de fonctionnalité

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

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 selon version utilisée de DirectML.h.

Par exemple, une application qui s’appuie sur un kit SDK plus récent, mais qui s’exécute sur une version antérieure de Windows, peut (lors du runtime) voir un niveau de fonctionnalité inférieur, même s’il est compilé sur le dernier kit de développement logiciel (SDK).

Voir aussi