Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
DirectML wird als Systemkomponente von Windows verteilt und ist als Teil des Windows-Betriebssystems (Os) in Windows 10, Version 1903 (10.0) verfügbar; Build 18362) und höher.
Ab DirectML Version 1.4.0 ist DirectML auch als eigenständiges redistributable-Paket verfügbar (siehe Microsoft.AI.DirectML), das für Anwendungen nützlich ist, die eine feste Version von DirectML verwenden möchten, oder wenn sie auf älteren Versionen von Windows 10 ausgeführt werden.
DirectML folgt den Konventionen für die semantische Versionsverwaltung . Das heißt, Versionsnummern folgen dem Formular major.minor.patch. Die erste Version von DirectML verfügt über eine Version von 1.0.0.
Versionstabelle
| DirectML-Version | Unterstützte Featureebene (siehe DirectML-Featureebenenverlauf) | DML_TARGET_VERSION | Zuerst verfügbar unter (Betriebssystem) | Zuerst verfügbar in (Redistributable) |
|---|---|---|---|---|
| 1.15.4 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Nicht verfügbar | DirectML-1.15.4 |
| 1.15.3 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Nicht verfügbar | DirectML-1.15.3 |
| 1.15.2 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Nicht verfügbar | DirectML-1.15.2 |
| 1.15.1 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Nicht verfügbar | DirectML-1.15.1 |
| 1.15.0 | DML_FEATURE_LEVEL_6_4 und DML_FEATURE_LEVEL_6_3 |
0x6400 oder 0x6300 |
Nicht verfügbar | DirectML-1.15.0 |
| 1.13.1 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Nicht verfügbar | DirectML-1.13.1 |
| 1.13.0 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Nicht verfügbar | DirectML-1.13.0 |
| 1.12.0 | DML_FEATURE_LEVEL_6_1 | 0x6100 |
Nicht verfügbar | DirectML-1.12.0 |
| 1.11.0 | DML_FEATURE_LEVEL_6_0 | 0x6000 |
Nicht verfügbar | DirectML-1.11.0 |
| 1.10.0 | DML_FEATURE_LEVEL_5_2 | 0x5200 |
Nicht verfügbar | DirectML-1.10.0 |
| 1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
Nicht verfügbar | 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 |
Nicht verfügbar | 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 |
Nicht verfügbar | DirectML-1.5.0 |
| 1.4.01 | DML_FEATURE_LEVEL_3_0 | 0x3000 |
Nicht verfügbar | DirectML-1.4.0 |
| 1.1.0 | DML_FEATURE_LEVEL_2_0 | 0x2000 |
Windows 10, Version 2004 (10.0; Build 19041) (Windows 10 Mai 2020 Update). Aka „20H1“. | Nicht verfügbar |
| 1.0.0 | DML_FEATURE_LEVEL_1_0 | 0x1000 |
Windows 10, Version 1903 (10.0; Build 18362) (Windows 10 Mai 2019 Update). Aka „19H1“. | Nicht verfügbar |
1 Die 1.2.0- und 1.3.0-Zwischenversionen von DirectML wurden nicht allgemein verfügbar gemacht.
Auswählen einer DirectML-Zielversion
Zur Vereinfachung werden bestimmte Features in der DirectML.h Headerdatei bedingt basierend auf dem Wert des DML_TARGET_VERSION Makros deklariert. Indem Sie das DML_TARGET_VERSION-Makro auf bestimmte Werte festlegen, können Sie Teile von DirectML.h aus Anwendung ausschließen.
Dies kann hilfreich sein, wenn Sie eine neuere Kopie von DirectML.hverwenden, aber sie auf eine niedrigere Version der DirectML-Binärdatei abzielen, da sichergestellt wird, dass alle Versuche, Features zu verwenden, die über die ausgewählte Zielebene hinausgehen, nicht kompiliert werden. Dieser Mechanismus ähnelt dem NTDDI_VERSION Makro (siehe Makros für bedingte Deklarationen).
Hier sind die gültigen Werte für das DML_TARGET_VERSION Makro.
| DML_TARGET_VERSION | Effekt |
|---|---|
0x6400 |
Alle Features, die eine neuere Version von DirectML als 1.15.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x6300 |
Alle Features, die eine neuere Version von DirectML als 1.15.0 erfordern oder DML_FEATURE_LEVEL_6_4 Features sind, sind von DirectML.h ausgeschlossen. |
0x6200 |
Alle Features, die eine neuere Version von DirectML als 1.13.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x6100 |
Alle Features, die eine neuere Version von DirectML als 1.12.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x6000 |
Alle Features, die eine neuere Version von DirectML als 1.11.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x5200 |
Alle Features, die eine neuere Version von DirectML als 1.10.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x5100 |
Alle Features, die eine neuere Version von DirectML als 1.9.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x5000 |
Alle Features, die eine neuere Version von DirectML als 1.8.0 erfordern, werden von DirectML.h ausgeschlossen. |
0x4100 |
Alle Funktionen, die eine neuere Versionsnummer von DirectML als 1.7.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x4000 |
Alle Features, die eine neuere Version von DirectML als 1.6.0 erfordern, werden von DirectML.h ausgeschlossen. |
0x3100 |
Alle Features, die eine neuere Version von DirectML als 1.5.0 erfordern, werden von DirectML.h ausgeschlossen. |
0x3000 |
Alle Features, die eine neuere Version von DirectML als 1.4.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x2000 |
Alle Features, die eine neuere Version von DirectML als 1.1.0 erfordern, sind von DirectML.h ausgeschlossen. |
0x1000 |
Alle Features, die eine neuere Version von DirectML als 1.0.0 erfordern, werden von DirectML.h ausgeschlossen. |
| Nicht festgelegt | Die Zielversion wird automatisch für Sie ausgewählt. Details finden Sie weiter unten. |
Wenn DML_TARGET_VERSION nicht festgelegt ist, wird es automatisch wie folgt ausgewählt.
- Wenn das
DML_TARGET_VERSION_USE_LATESTMakro definiert ist, wird die neueste Zielversion ausgewählt. - Andernfalls wird die Zielversion basierend auf dem Wert des
NTDDI_VERSIONMakros ausgewählt.-
NTDDI_WIN10_ZNergibt eine Zielversion von0x6000. -
NTDDI_WIN10_NIergibt eine Zielversion von0x5000. -
NTDDI_WIN10_COergibt eine Zielversion von0x4000. -
NTDDI_WIN10_FEergibt eine Zielversion von0x3000. -
NTDDI_WIN10_VBergibt eine Zielversion von0x2000. -
NTDDI_WIN10_19H1ergibt eine Zielversion von0x1000. - Wenn
NTDDI_VERSIONnicht definiert ist, wird die neueste Zielversion ausgewählt (als obDML_TARGET_VERSION_USE_LATESTangegeben wäre).
-
Beispiel
Erwägen Sie eine Anwendung mit Version 10.0.19041.0 (Windows 10, Version 2004) des Windows Software Development Kit (SDK). Aus der obigen Tabelle ist die Version von DirectML, die dieser entspricht, 1.1.0 und die entsprechende DML_TARGET_VERSION ist 0x2000.
Wenn Sie weder die DML_TARGET_VERSION-Makros noch die NTDDI_VERSION-Makros festlegen, wird die ausgewählte Zielversion standardmäßig auf 0x2000 gesetzt, und alles in DirectML.h wird zur Verfügung stehen.
Wenn Sie möchten, dass Ihre Anwendung unter Windows 10, Version 1903 (10.0; Build 18362) ausgeführt werden kann, dann könnten Sie alle Inhalte in #define DML_TARGET_VERSION 0x1000 ausschließen, die von DirectML Version 1.0.0 nicht unterstützt werden. Dadurch wird sichergestellt, dass jeder Versuch, Funktionen zu verwenden, die eine größere Version erfordert, nicht kompiliert werden kann.
DirectML-Version im Vergleich zur Featureebene
Die DirectML-Version (z. B. 1.0.0 oder 1.4.0) beschreibt eine bestimmte Version von DirectML, einschließlich der zugeordneten DirectML.h Headerdatei und .lib -datei.
Die Featureebene (z. B. DML_FEATURE_LEVEL_1_0 oder DML_FEATURE_LEVEL_2_0) beschreibt die Fähigkeit der zugrunde liegenden Implementierung der API, die von der Version DirectML.h abweichen kann, die verwendet wird.
Beispielsweise kann eine Anwendung, die mit einem neueren SDK erstellt wird, aber auf einer älteren Version von Windows ausgeführt wird, möglicherweise (zur Laufzeit) eine niedrigere unterstützte Featureebene sehen, auch wenn sie mit dem neuesten SDK kompiliert wird.