Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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_LATESTmacro 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_VERSIONmacro.-
NTDDI_WIN10_ZNaboutit à une version cible de0x6000. -
NTDDI_WIN10_NIaboutit à une version cible de0x5000. -
NTDDI_WIN10_COaboutit à une version cible de0x4000. -
NTDDI_WIN10_FEaboutit à une version cible de0x3000. -
NTDDI_WIN10_VBaboutit à une version cible de0x2000. -
NTDDI_WIN10_19H1aboutit à une version cible de0x1000. - Si
NTDDI_VERSIONn’est pas défini, la dernière version cible est sélectionnée (comme si elleDML_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.