Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DirectML jest dystrybuowany jako składnik systemu Windows i jest dostępny jako część systemu operacyjnego Windows w Windows 10, w wersji 1903 (10.0; Kompilacja 18362) i nowszych.
Począwszy od języka DirectML w wersji 1.4.0, język DirectML jest również dostępny jako autonomiczny pakiet redystrybucyjny (zobacz Microsoft.AI.DirectML), który jest przydatny w przypadku aplikacji, które chcą używać stałej wersji języka DirectML lub w starszych wersjach systemu Windows 10.
DirectML stosuje semantyczne wersjonowanie. Oznacza to, że numery wersji są zgodne z formularzem major.minor.patch. Pierwsza wersja języka DirectML ma wersję 1.0.0.
Tabela wersji
| Wersja języka DirectML | Obsługiwany poziom funkcji (zobacz historia funkcji DirectML) | WERSJA_CELU_DML | Pierwszy dostępny w systemie operacyjnym | Pierwotnie dostępny (rozprowadzalny) |
|---|---|---|---|---|
| 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 i DML_FEATURE_LEVEL_6_3 |
0x6400 lub 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 | Język 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 | Język DirectML-1.10.0 |
| 1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
N/A | Język DirectML-1.9.0 |
| 1.8.0 | DML_FEATURE_LEVEL_5_0 | 0x5000 |
Windows 11 (kompilacja 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 (kompilacja 10.0.22000; 21H2) | Język DirectML-1.6.0 |
| 1.5.0 | DML_FEATURE_LEVEL_3_1 | 0x3100 |
N/A | Język 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, wersja 2004 (10.0; Build 19041) (Windows 10 Maj 2020 Update). Znany również jako "20H1". | N/A |
| 1.0.0 | DML_FEATURE_LEVEL_1_0 | 0x1000 |
Windows 10, wersja 1903 (10.0; Build 18362) (Windows 10 Maj 2019 Update). Znany również jako "19H1". | N/A |
1 Wersje pośrednie 1.2.0 i 1.3.0 języka DirectML nie były szeroko dostępne.
Wybieranie wersji docelowej DirectML
Dla wygody niektóre funkcje w pliku nagłówka DirectML.h są deklarowane warunkowo na podstawie wartości makra DML_TARGET_VERSION . Ustawiając makro DML_TARGET_VERSION na określone wartości, można wykluczyć pewne części aplikacji DirectML.h.
Może to być przydatne, jeśli używasz nowszej kopii DirectML.h, a jednocześnie celujesz w niższą wersję pliku binarnego DirectML, ponieważ gwarantuje to, że każda próba użycia funkcji poza wybranym poziomem docelowym nie zostanie skompilowana. Ten mechanizm jest podobny do makra NTDDI_VERSION (zobacz Makra dla deklaracji warunkowych).
Poniżej przedstawiono prawidłowe wartości makra DML_TARGET_VERSION .
| WERSJA_CELU_DML | Efekt |
|---|---|
0x6400 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.15.0 są wykluczone z programu DirectML.h. |
0x6300 |
Wszystkie funkcje, które wymagają nowszej wersji języka DirectML niż 1.15.0 lub które są DML_FEATURE_LEVEL_6_4 funkcji, są wykluczone z programu DirectML.h. |
0x6200 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.13.0 są wykluczone z programu DirectML.h. |
0x6100 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.12.0 są wykluczone z programu DirectML.h. |
0x6000 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.11.0 są wykluczone z programu DirectML.h. |
0x5200 |
Wszystkie funkcje, które wymagają nowszej wersji języka DirectML niż 1.10.0 , są wykluczone z programu DirectML.h. |
0x5100 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.9.0 są wykluczone z programu DirectML.h. |
0x5000 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.8.0 są wykluczone z programu DirectML.h. |
0x4100 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.7.0 są wykluczone z programu DirectML.h. |
0x4000 |
Wszystkie funkcje, które wymagają nowszej wersji języka DirectML niż 1.6.0 , są wykluczone z programu DirectML.h. |
0x3100 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.5.0 są wykluczone z programu DirectML.h. |
0x3000 |
Wszystkie funkcje, które wymagają nowszej wersji języka DirectML niż 1.4.0 , są wykluczone z programu DirectML.h. |
0x2000 |
Wszystkie funkcje, które wymagają nowszej wersji języka DirectML niż 1.1.0 , są wykluczone z programu DirectML.h. |
0x1000 |
Wszystkie funkcje wymagające nowszej wersji języka DirectML niż 1.0.0 są wykluczone z programu DirectML.h. |
| Nie ustawiono | Wersja docelowa jest wybierana automatycznie. Aby uzyskać szczegółowe informacje, zobacz poniżej. |
Jeśli DML_TARGET_VERSION nie zostanie ustawiony, zostanie on wybrany automatycznie na podstawie poniższych kryteriów.
-
DML_TARGET_VERSION_USE_LATESTJeśli makro jest zdefiniowane, wybrana jest najnowsza wersja docelowa. - W przeciwnym razie wersja docelowa jest wybierana na podstawie wartości makra
NTDDI_VERSION.-
NTDDI_WIN10_ZNpowoduje wyświetlenie docelowej wersji elementu0x6000. -
NTDDI_WIN10_NIpowoduje wyświetlenie docelowej wersji elementu0x5000. -
NTDDI_WIN10_COpowoduje wyświetlenie docelowej wersji elementu0x4000. -
NTDDI_WIN10_FEpowoduje wyświetlenie docelowej wersji elementu0x3000. -
NTDDI_WIN10_VBpowoduje wyświetlenie docelowej wersji elementu0x2000. -
NTDDI_WIN10_19H1powoduje wyświetlenie docelowej wersji elementu0x1000. - Jeśli
NTDDI_VERSIONnie jest zdefiniowana, wybrana jest najnowsza wersja docelowa (tak, jakbyDML_TARGET_VERSION_USE_LATESTzostała określona).
-
Przykład
Rozważ użycie aplikacji w wersji 10.0.19041.0 (Windows 10 w wersji 2004) zestawu Windows Software Development Kit (SDK). Z powyższej tabeli wersja DirectML odpowiadająca temu to 1.1.0, a odpowiadająca DML_TARGET_VERSION wartość to 0x2000.
Jeśli nie ustawisz ani DML_TARGET_VERSION, ani NTDDI_VERSION makr, wybrana wersja docelowa będzie domyślnie ustawiona na 0x2000, a wszystko w DirectML.h będzie dostępne do użycia.
Jeśli chcesz, aby aplikacja mogła działać w systemie Windows 10, wersji 1903 (10.0; kompilacja 18362), możesz #define DML_TARGET_VERSION 0x1000 wykluczyć całą zawartość w DirectML.h, która nie jest obsługiwana przez DirectML w wersji 1.0.0. Dzięki temu każda próba użycia funkcji, która wymaga nowszej wersji, zakończy się niepowodzeniem.
Wersja DirectML w porównaniu do poziomu funkcji
Wersja DirectML (na przykład 1.0.0 lub 1.4.0) opisuje określoną wersję języka DirectML, w tym skojarzony z nim DirectML.h plik nagłówka i .lib plik.
Poziom funkcji (na przykład DML_FEATURE_LEVEL_1_0, lub DML_FEATURE_LEVEL_2_0) opisuje możliwość podstawowej implementacji interfejsu API, która może różnić się od używanej DirectML.h wersji.
Na przykład kompilacja aplikacji na podstawie nowszego zestawu SDK, ale uruchomiona w starszej wersji systemu Windows, może (w czasie wykonywania) zobaczyć niższy obsługiwany poziom funkcji, nawet jeśli jest on kompilowany względem najnowszego zestawu SDK.