Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
DirectML is in onderhoudsengineering. DirectML wordt nog steeds ondersteund, maar de ontwikkeling van nieuwe functies is verplaatst naar Windows ML voor ONNX Runtime-implementaties op basis van Windows. Windows ML biedt dezelfde ONNX Runtime-API's terwijl u dynamisch de beste uitvoeringsprovider selecteert op basis van uw hardware. Zie Wat is Windows ML voor meer informatie.
DirectML wordt gedistribueerd als systeemonderdeel van Windows en is beschikbaar als onderdeel van het Windows-besturingssysteem (OS) in Windows 10, versie 1903 (10.0; Build 18362) en hoger.
Vanaf DirectML versie 1.4.0 is DirectML ook beschikbaar als een zelfstandig herdistribueerbaar pakket (zie Microsoft.AI.DirectML), wat handig is voor toepassingen die een vaste versie van DirectML willen gebruiken of wanneer ze worden uitgevoerd in oudere versies van Windows 10.
DirectML volgt de semantische versiebeheerconventies. Dat wil zeggen, versienummers volgen het formaat major.minor.patch. De eerste release van DirectML heeft een versie van 1.0.0.
Versietabel
| DirectML-versie | Ondersteund functieniveau (zie Geschiedenis van DirectML-functieniveau) | DML_TARGET_VERSION | Eerst beschikbaar in (besturingssysteem) | Eerst beschikbaar in (Redistributable) |
|---|---|---|---|---|
| 1.15.4 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Niet van toepassing. | DirectML-1.15.4 |
| 1.15.3 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Niet van toepassing. | DirectML-1.15.3 |
| 1.15.2 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Niet van toepassing. | DirectML-1.15.2 |
| 1.15.1 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Niet van toepassing. | DirectML-1.15.1 |
| 1.15.0 | DML_FEATURE_LEVEL_6_4 en DML_FEATURE_LEVEL_6_3 |
0x6400 of 0x6300 |
Niet van toepassing. | DirectML-1.15.0 |
| 1.13.1 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Niet van toepassing. | DirectML-1.13.1 |
| 1.13.0 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Niet van toepassing. | DirectML-1.13.0 |
| 1.12.0 | DML_FEATURE_LEVEL_6_1 | 0x6100 |
Niet van toepassing. | DirectML-1.12.0 |
| 1.11.0 | DML_FEATURE_LEVEL_6_0 | 0x6000 |
Niet van toepassing. | DirectML-1.11.0 |
| 1.10.0 | DML_FEATURE_LEVEL_5_2 | 0x5200 |
Niet van toepassing. | DirectML-1.10.0 |
| 1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
Niet van toepassing. | 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 |
Niet van toepassing. | Directe ML-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 |
Niet van toepassing. | DirectML-1.5.0 |
| 1.4.01 | DML_FEATURE_LEVEL_3_0 | 0x3000 |
Niet van toepassing. | DirectML-1.4.0 |
| 1.1.0 | DML_FEATURE_LEVEL_2_0 | 0x2000 |
Windows 10, versie 2004 (10.0; Build 19041) (Windows 10 mei 2020 Update). Ook wel '20H1' genoemd. | Niet van toepassing. |
| 1.0.0 | DML_FEATURE_LEVEL_1_0 | 0x1000 |
Windows 10, versie 1903 (10.0; Build 18362) (Update van Windows 10 mei 2019). Oftewel '19H1'. | Niet van toepassing. |
1 De tussenliggende releases 1.2.0 en 1.3.0 van DirectML werden niet algemeen beschikbaar gesteld.
Een DirectML-doelversie selecteren
Voor het gemak worden bepaalde functies in het DirectML.h koptekstbestand voorwaardelijk gedeclareerd op basis van de waarde van de DML_TARGET_VERSION macro. Door de DML_TARGET_VERSION macro in te stellen op bepaalde waarden, kunt u delen van DirectML.h van uw toepassing uitsluiten.
Als u een nieuwere kopie van DirectML.h gebruikt, maar zich richt op een lagere versie van de DirectML-binaire, kan dat handig zijn, omdat het ervoor zorgt dat elke poging om functies buiten het gekozen doelniveau te gebruiken niet gecompileerd kunnen worden. Dit mechanisme is vergelijkbaar met de NTDDI_VERSION macro (zie Macro's voor voorwaardelijke declaraties).
Dit zijn de geldige waarden voor de DML_TARGET_VERSION macro.
| DML_TARGET_VERSION | Gevolg |
|---|---|
0x6400 |
Alle functies waarvoor een versie van DirectML hoger is dan 1.15.0 zijn uitgesloten van DirectML.h. |
0x6300 |
Alle functies waarvoor een versie van DirectML hoger is dan 1.15.0 of die DML_FEATURE_LEVEL_6_4 functies zijn, worden uitgesloten van DirectML.h. |
0x6200 |
Alle functies waarvoor een versie van DirectML hoger is dan 1.13.0 zijn uitgesloten van DirectML.h. |
0x6100 |
Alle functies waarvoor een versie van DirectML hoger dan 1.12.0 is vereist, worden uitgesloten van DirectML.h. |
0x6000 |
Alle functies waarvoor een versie van DirectML hoger is dan 1.11.0 zijn uitgesloten van DirectML.h. |
0x5200 |
Alle functies waarvoor een versie van DirectML hoger is dan 1.10.0 zijn uitgesloten van DirectML.h. |
0x5100 |
Alle functies waarvoor een versie van DirectML hoger dan 1.9.0 is vereist, worden uitgesloten van DirectML.h. |
0x5000 |
Alle functies waarvoor een versie van DirectML hoger dan 1.8.0 is vereist, zijn uitgesloten van DirectML.h. |
0x4100 |
Alle functies waarvoor een versie van DirectML hoger dan 1.7.0 is vereist, worden uitgesloten van DirectML.h. |
0x4000 |
Alle functies waarvoor een versie van DirectML hoger is dan 1.6.0 zijn uitgesloten van DirectML.h. |
0x3100 |
Alle functies waarvoor een versie van DirectML hoger dan 1.5.0 is vereist, worden uitgesloten van DirectML.h. |
0x3000 |
Alle functies waarvoor een versie van DirectML hoger dan 1.4.0 is vereist, worden uitgesloten van DirectML.h. |
0x2000 |
Alle functies waarvoor een versie van DirectML hoger dan 1.1.0 is vereist, worden uitgesloten van DirectML.h. |
0x1000 |
Alle functies waarvoor een versie van DirectML hoger dan 1.0.0 is vereist, worden uitgesloten van DirectML.h. |
| Niet ingesteld | De doelversie wordt automatisch voor u geselecteerd. Kijk hieronder voor de details. |
Als DML_TARGET_VERSION niet is ingesteld, wordt het automatisch geselecteerd volgens de volgende procedure.
- Als de
DML_TARGET_VERSION_USE_LATESTmacro is gedefinieerd, wordt de meest recente doelversie geselecteerd. - Anders wordt de doelversie geselecteerd op basis van de waarde van de
NTDDI_VERSIONmacro.-
NTDDI_WIN10_ZNresulteert in een doelversie van0x6000. -
NTDDI_WIN10_NIresulteert in een doelversie van0x5000. -
NTDDI_WIN10_COresulteert in een doelversie van0x4000. -
NTDDI_WIN10_FEresulteert in een doelversie van0x3000. -
NTDDI_WIN10_VBresulteert in een doelversie van0x2000. -
NTDDI_WIN10_19H1resulteert in een doelversie van0x1000. - Als
NTDDI_VERSIONniet is gedefinieerd, wordt de meest recente doelversie geselecteerd (alsofDML_TARGET_VERSION_USE_LATESTwas opgegeven).
-
Voorbeeld
Overweeg een toepassing met versie 10.0.19041.0 (Windows 10, versie 2004) van de Windows Software Development Kit (SDK). In de bovenstaande tabel is de versie van DirectML waarmee dit overeenkomt 1.1.0 en de bijbehorende DML_TARGET_VERSION is 0x2000.
Als u noch de DML_TARGET_VERSION noch de NTDDI_VERSION macro's instelt, wordt de geselecteerde doelversie standaard 0x2000, en is alles in DirectML.h beschikbaar voor gebruik.
Als u wilt dat uw toepassing kan worden uitgevoerd op Windows 10, versie 1903 (10.0; Build 18362), dan kunt u #define DML_TARGET_VERSION 0x1000, waardoor alle inhoud in DirectML.h wordt uitgesloten die niet wordt ondersteund door DirectML versie 1.0.0. Dit zorgt ervoor dat elke poging om functionaliteit te gebruiken waarvoor een grotere versie vereist, niet kan worden gecompileerd.
DirectML-versie versus functieniveau
De DirectML-versie (bijvoorbeeld 1.0.0 of 1.4.0) beschrijft een bepaalde versie van DirectML, inclusief het bijbehorende DirectML.h headerbestand en .lib -bestand.
Het functieniveau (bijvoorbeeld DML_FEATURE_LEVEL_1_0, of DML_FEATURE_LEVEL_2_0) beschrijft de mogelijkheid van de onderliggende implementatie van de API, die kan variƫren van de gebruikte versie DirectML.h .
Een toepassing die bouwt op basis van een nieuwere SDK, maar wordt uitgevoerd op een oudere versie van Windows, kan (tijdens runtime) een lager ondersteund functieniveau zien, zelfs als deze is gecompileerd op basis van de nieuwste SDK.