Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
DirectML распространяется как системный компонент Windows и доступен в составе операционной системы Windows в Windows 10 версии 1903 (10.0; Сборка 18362) и более поздних версий.
Начиная с Версии 1.4.0 DirectML, DirectML также доступен как автономный распространяемый пакет (см. Microsoft.AI.DirectML), который полезен для приложений, которые хотят использовать фиксированную версию DirectML, или при запуске в более ранних версиях Windows 10.
DirectML следует принципам семантического версионирования. То есть номера версий соответствуют форме major.minor.patch. Первый выпуск DirectML имеет версию 1.0.0.
Таблица версий
| Версия DirectML | Поддерживаемый уровень компонентов (см. журнал компонентов DirectML) | DML_TARGET_VERSION | Первая доступна в (ОС) | Первая доступна в (распространяемая версия) |
|---|---|---|---|---|
| 1.15.4 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Не применимо | DirectML-1.15.4 (DirectML-1.15.4) |
| 1.15.3 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Не применимо | DirectML-1.15.3 |
| 1.15.2 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Не применимо | DirectML-1.15.2 (DirectML-1.15.2) |
| 1.15.1 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Не применимо | DirectML-1.15.1 (DirectML-1.15.1) |
| 1.15.0 | DML_FEATURE_LEVEL_6_4 и DML_FEATURE_LEVEL_6_3 |
0x6400 или 0x6300 |
Не применимо | DirectML-1.15.0 (DirectML-1.15.0) |
| 1.13.1 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Не применимо | DirectML-1.13.1 |
| 1.13.0 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Не применимо | DirectML-1.13.0 (DirectML-1.13.0) |
| 1.12.0 | DML_FEATURE_LEVEL_6_1 | 0x6100 |
Не применимо | DirectML-1.12.0 (DirectML-1.12.0) |
| 1.11.0 | DML_FEATURE_LEVEL_6_0 | 0x6000 |
Не применимо | DirectML-1.11.0 |
| 1.10.0 | DML_FEATURE_LEVEL_5_2 | 0x5200 |
Не применимо | DirectML-1.10.0 (DirectML-1.10.0) |
| 1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
Не применимо | DirectML-1.9.0 |
| 1.8.0 | DML_FEATURE_LEVEL_5_0 | 0x5000 |
Windows 11 (сборка 10.0.22621; 22H2) | DirectML-1.8.0 |
| 1.7.0 | DML_FEATURE_LEVEL_4_1 | 0x4100 |
Не применимо | DirectML-1.7.0 (DirectML-1.7.0) |
| 1.6.0 | DML_FEATURE_LEVEL_4_0 | 0x4000 |
Windows 11 (сборка 10.0.22000; 21H2) | DirectML-1.6.0 |
| 1.5.0 | DML_FEATURE_LEVEL_3_1 | 0x3100 |
Не применимо | DirectML-1.5.0 |
| 1.4.01 | DML_FEATURE_LEVEL_3_0 | 0x3000 |
Не применимо | DirectML-1.4.0 |
| 1.1.0 | DML_FEATURE_LEVEL_2_0 | 0x2000 |
Windows 10 версии 2004 (10.0; Сборка 19041 (обновление Windows 10 мая 2020 г.). Ака "20H1". | Не применимо |
| 1.0.0 | DML_FEATURE_LEVEL_1_0 | 0x1000 |
Windows 10 версии 1903 (10.0; Сборка 18362) (обновление Windows 10 за май 2019 г.). Ака "19H1". | Не применимо |
1 Промежуточные выпуски DirectML 1.2.0 и 1.3.0 были недоступны.
Выбор целевой версии DirectML
Для удобства некоторые особенности в файле заголовка DirectML.h объявляются условно, в зависимости от значения макроса DML_TARGET_VERSION. Задав DML_TARGET_VERSION макрос определенным значениям, можно исключить части DirectML.h из приложения.
Это может быть полезно, если вы используете более новую копию DirectML.h, но вы нацелены на более низкую версию двоичного файла DirectML, так как это гарантирует, что любая попытка использовать функции за пределами выбранного целевого уровня не будет компилироваться. Этот механизм похож на NTDDI_VERSION макрос (см. макросы для условных объявлений).
Ниже приведены допустимые значения макроса DML_TARGET_VERSION .
| DML_TARGET_VERSION | Эффект |
|---|---|
0x6400 |
Любые функции, требующие версии DirectML, более новой, чем 1.15.0, исключаются из DirectML.h. |
0x6300 |
Все функции, для которых требуется версия DirectML более поздней версии 1.15.0 или которые являются DML_FEATURE_LEVEL_6_4 функциями, исключаются из DirectML.h. |
0x6200 |
Все функции, требующие более поздней версии DirectML, чем 1.13.0 , исключаются из DirectML.h. |
0x6100 |
Все функции, требующие версии DirectML более поздней версии 1.12.0 , исключаются из DirectML.h. |
0x6000 |
Все функции, требующие более новой версии DirectML, чем 1.11.0 , исключаются из DirectML.h. |
0x5200 |
Все функции, требующие версию DirectML новее версии 1.10.0, исключаются из DirectML.h. |
0x5100 |
Все функции, требующие более новой версии DirectML, чем 1.9.0, исключаются из DirectML.h. |
0x5000 |
Все функции, требующие более новой версии DirectML, чем 1.8.0 , исключаются из DirectML.h. |
0x4100 |
Все функции, требующие более новой версии DirectML, чем 1.7.0 , исключаются из DirectML.h. |
0x4000 |
Все функции, требующие версии DirectML более поздней версии 1.6.0 , исключаются из DirectML.h. |
0x3100 |
Все функции, требующие версию DirectML новее 1.5.0, исключаются из DirectML.h. |
0x3000 |
Все функции, которые требуют версию DirectML новее чем 1.4.0, исключаются из DirectML.h. |
0x2000 |
Все функции, требующие версии DirectML более поздней, чем 1.1.0, исключаются из DirectML.h. |
0x1000 |
Все функции, требующие версии DirectML более поздней версии 1.0.0, исключаются из DirectML.h. |
| Не задано | Целевая версия выбирается автоматически. Подробные сведения см. ниже. |
Если DML_TARGET_VERSION параметр не задан, он выбирается автоматически следующим образом.
-
DML_TARGET_VERSION_USE_LATESTЕсли макрос определен, выбрана последняя целевая версия. - В противном случае целевая версия выбирается на основе значения
NTDDI_VERSIONмакроса.-
NTDDI_WIN10_ZNприводит к целевой версии0x6000. -
NTDDI_WIN10_NIприводит к целевой версии0x5000. -
NTDDI_WIN10_COприводит к целевой версии0x4000. -
NTDDI_WIN10_FEприводит к целевой версии0x3000. -
NTDDI_WIN10_VBприводит к целевой версии0x2000. -
NTDDI_WIN10_19H1приводит к целевой версии0x1000. - Если
NTDDI_VERSIONне определено, выбрана последняя целевая версия (как если бы было указаноDML_TARGET_VERSION_USE_LATEST).
-
Пример
Рассмотрим приложение с помощью версии 10.0.19041.0 (Windows 10 версии 2004) пакета SDK для Windows. В приведенной выше таблице версия DirectML 1.1.0 соответствует DML_TARGET_VERSION, и соответствующий 0x2000.
Если вы не задаете ни макросы DML_TARGET_VERSION, ни NTDDI_VERSION, то выбранная целевая версия по умолчанию установится на 0x2000, и все в DirectML.h будет доступно для использования.
Если вы хотите, чтобы ваше приложение могло работать на Windows 10 версии 1903 (10.0; Сборка 18362), то вы можете #define DML_TARGET_VERSION 0x1000, чтобы исключить весь контент в DirectML.h, который не поддерживается DirectML версии 1.0.0. Это гарантирует, что любая попытка использовать функциональные возможности, требующие большей версии, не будет компилироваться.
Версия DirectML и уровень компонентов
Версия DirectML (например, 1.0.0 или 1.4.0) описывает конкретный выпуск DirectML, включая связанные с ним файл заголовков DirectML.h и файл .lib.
Уровень компонентов (например, DML_FEATURE_LEVEL_1_0или DML_FEATURE_LEVEL_2_0) описывает возможности базовой реализации API, которая может отличаться от используемой DirectML.h версии.
Например, сборка приложения с более новым пакетом SDK, но работающая в более старой версии Windows, может (во время выполнения) увидеть более низкий поддерживаемый уровень компонентов, даже если он компилируется по последнему пакету SDK.