Udostępnij przez


Historia wersji języka DirectML

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_LATEST Jeś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_ZN powoduje wyświetlenie docelowej wersji elementu 0x6000.
    • NTDDI_WIN10_NI powoduje wyświetlenie docelowej wersji elementu 0x5000.
    • NTDDI_WIN10_CO powoduje wyświetlenie docelowej wersji elementu 0x4000.
    • NTDDI_WIN10_FE powoduje wyświetlenie docelowej wersji elementu 0x3000.
    • NTDDI_WIN10_VB powoduje wyświetlenie docelowej wersji elementu 0x2000.
    • NTDDI_WIN10_19H1 powoduje wyświetlenie docelowej wersji elementu 0x1000.
    • Jeśli NTDDI_VERSION nie jest zdefiniowana, wybrana jest najnowsza wersja docelowa (tak, jakby DML_TARGET_VERSION_USE_LATEST został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.

Zobacz także