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 de0x6000
.NTDDI_WIN10_NI
génère une version cible de0x5000
.NTDDI_WIN10_CO
génère une version cible de0x4000
.NTDDI_WIN10_FE
génère une version cible de0x3000
.NTDDI_WIN10_VB
génère une version cible de0x2000
.NTDDI_WIN10_19H1
génère une version cible de0x1000
.- Si
NTDDI_VERSION
n’est pas définie, la dernière version cible est sélectionnée (comme siDML_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).