DirectML은 Windows의 시스템 구성 요소로 배포되며 Windows 10 버전 1903(10.0;에서 Windows OS(운영 체제)의 일부로 사용할 수 있습니다. 빌드 18362) 이상.
DirectML 버전 1.4.0부터 DirectML은 독립 실행형 재배포 가능 패키지( Microsoft.AI.DirectML 참조)로도 사용할 수 있습니다. 이 패키지는 고정 버전의 DirectML을 사용하려는 애플리케이션 또는 이전 버전의 Windows 10에서 실행할 때 유용합니다.
DirectML은 의미 체계 버전 관리 규칙을 따릅니다. 즉, 버전 번호는 형식 major.minor.patch을 따릅니다. DirectML의 첫 번째 릴리스에는 1.0.0 버전이 있습니다.
버전 테이블
| DirectML 버전 | 지원되는 기능 수준( DirectML 기능 수준 기록 참조) | DML_목표_버전 | 처음 사용할 수 있는 운영 체제 | 첫 번째 사용 가능(재배포 가능) |
|---|---|---|---|---|
| 1.15.4 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
해당 없음(N/A) | 다이렉트ML-1.15.4 |
| 1.15.3 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
해당 없음(N/A) | 다이렉트ML-1.15.3 |
| 1.15.2 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
해당 없음(N/A) | 다이렉트ML-1.15.2 |
| 1.15.1 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
해당 없음(N/A) | 다이렉트ML-1.15.1 |
| 1.15.0 | DML_FEATURE_LEVEL_6_4 및 DML_FEATURE_LEVEL_6_3 |
0x6400 또는 0x6300 |
해당 없음(N/A) | 다이렉트ML-1.15.0 |
| 1.13.1 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
해당 없음(N/A) | 다이렉트ML-1.13.1 |
| 1.13.0 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
해당 없음(N/A) | 다이렉트ML-1.13.0 |
| 1.12.0 | DML_FEATURE_LEVEL_6_1 | 0x6100 |
해당 없음(N/A) | 다이렉트ML-1.12.0 |
| 1.11.0 | DML_FEATURE_LEVEL_6_0 | 0x6000 |
해당 없음(N/A) | 다이렉트ML-1.11.0 |
| 1.10.0 | DML_FEATURE_LEVEL_5_2 | 0x5200 |
해당 없음(N/A) | 다이렉트ML-1.10.0 |
| 1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
해당 없음(N/A) | 다이렉트ML-1.9.0 |
| 1.8.0 | DML_FEATURE_LEVEL_5_0 | 0x5000 |
Windows 11(빌드 10.0.22621; 22H2) | 다이렉트ML-1.8.0 |
| 1.7.0 | DML_FEATURE_LEVEL_4_1 | 0x4100 |
해당 없음(N/A) | 다이렉트ML-1.7.0 |
| 1.6.0 | DML_FEATURE_LEVEL_4_0 | 0x4000 |
Windows 11(빌드 10.0.22000; 21H2) | 다이렉트ML-1.6.0 |
| 1.5.0 | DML_FEATURE_LEVEL_3_1 | 0x3100 |
해당 없음(N/A) | 다이렉트ML-1.5.0 |
| 1.4.01 | DML_FEATURE_LEVEL_3_0 | 0x3000 |
해당 없음(N/A) | 다이렉트ML-1.4.0 |
| 1.1.0 | DML_FEATURE_LEVEL_2_0 | 0x2000 |
Windows 10 버전 2004(10.0; 빌드 19041)(Windows 10 2020년 5월 업데이트). 일명 "20H1"입니다. | 해당 없음(N/A) |
| 1.0.0 | DML_FEATURE_LEVEL_1_0 | 0x1000 |
Windows 10 버전 1903(10.0; 빌드 18362)(Windows 10 2019년 5월 업데이트). 일명 "19H1"입니다. | 해당 없음(N/A) |
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_목표_버전 | 영향 |
|---|---|
0x6400 |
1.15.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x6300 |
1.15.0보다 최신 버전의 DirectML이 필요하거나 DML_FEATURE_LEVEL_6_4 기능이 필요한 기능은 제외DirectML.h됩니다. |
0x6200 |
1.13.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x6100 |
1.12.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x6000 |
1.11.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x5200 |
1.10.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x5100 |
1.9.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x5000 |
1.8.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x4100 |
1.7.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x4000 |
1.6.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x3100 |
1.5.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x3000 |
1.4.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x2000 |
1.1.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다DirectML.h. |
0x1000 |
1.0.0보다 최신 버전의 DirectML이 필요한 기능은 제외됩니다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이 지정된 것처럼 최신 대상 버전이 선택됩니다.
-
예시
Windows SDK(소프트웨어 개발 키트) 버전 10.0.19041.0(Windows 10, 버전 2004)을 사용하는 애플리케이션을 고려합니다. 위의 표에서 이에 해당하는 DirectML 버전은 1.1.0이고 해당 DML_TARGET_VERSION 버전은 1.1.0입니다 0x2000.
DML_TARGET_VERSION 또는 NTDDI_VERSION 매크로를 설정하지 않으면 선택된 대상 버전이 기본값으로 0x2000로 설정되고, DirectML.h의 모든 항목을 사용할 수 있습니다.
Windows 10 버전 1903(10.0; 빌드 18362)에서 애플리케이션이 실행되도록 하려면 DirectML 버전 1.0.0에서 지원되지 않는 #define DML_TARGET_VERSION 0x1000의 모든 콘텐츠를 제외할 DirectML.h수 있습니다. 이렇게 하면 더 큰 버전이 필요한 기능을 사용하려는 시도가 컴파일되지 않습니다.
DirectML 버전과 기능 수준 비교
DirectML 버전(예: 1.0.0 또는 1.4.0)은 연결된 DirectML.h 헤더 파일 및 .lib 파일을 포함하여 DirectML의 특정 릴리스를 설명합니다.
기능 수준(예: DML_FEATURE_LEVEL_1_0또는 DML_FEATURE_LEVEL_2_0)은 사용된 버전 DirectML.h 과 다를 수 있는 API의 기본 구현 기능을 설명합니다.
예를 들어 최신 SDK에 대해 빌드되지만 이전 버전의 Windows에서 실행되는 애플리케이션은 최신 SDK에 대해 컴파일된 경우에도 런타임에 지원되는 기능 수준이 더 낮을 수 있습니다.