Historial de versiones de DirectML
DirectML se distribuye como componente del sistema de Windows y está disponible como parte del sistema operativo Windows (SO) en Windows 10, versión 1903 (10.0; Compilación 18362) y versiones posteriores.
A partir de la versión 1.4.0 de DirectML, DirectML también está disponible como un paquete redistribuible independiente (consulte Microsoft.AI.DirectML), que es útil para las aplicaciones que desean usar una versión fija de DirectML o cuando se ejecutan en versiones anteriores de Windows 10.
DirectML sigue las convenciones de control de versionamiento semántico. Es decir, los números de versión siguen el formato major.minor.patch
. La primera versión de DirectML tiene una versión de 1.0.0.
Tabla de versión
Versión de DirectML | Nivel de característica admitido (consulte historial de nivel de características de DirectML) | DML_TARGET_VERSION | Disponible por primera vez en (SO) | Disponible por primera vez en (Redistribuible) |
---|---|---|---|---|
1.13.0 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
N/D | DirectML-1.13.0 |
1.12.0 | DML_FEATURE_LEVEL_6_1 | 0x6100 |
N/D | DirectML-1.12.0 |
1.11.0 | DML_FEATURE_LEVEL_6_0 | 0x6000 |
N/D | DirectML-1.11.0 |
1.10.0 | DML_FEATURE_LEVEL_5_2 | 0x5200 |
N/D | DirectML-1.10.0 |
1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
N/D | DirectML-1.9.0 |
1.8.0 | DML_FEATURE_LEVEL_5_0 | 0x5000 |
Windows 11 (compilación 10.0.22621; 22H2) | DirectML-1.8.0 |
1.7.0 | DML_FEATURE_LEVEL_4_1 | 0x4100 |
N/D | DirectML-1.7.0 |
1.6.0 | DML_FEATURE_LEVEL_4_0 | 0x4000 |
Windows 11 (compilación 10.0.22000; 21H2) | DirectML-1.6.0 |
1.5.0 | DML_FEATURE_LEVEL_3_1 | 0x3100 |
N/D | DirectML-1.5.0 |
1.4.01 | DML_FEATURE_LEVEL_3_0 | 0x3000 |
N/D | DirectML-1.4.0 |
1.1.0 | DML_FEATURE_LEVEL_2_0 | 0x2000 |
Windows 10, versión 2004 (10.0; Compilación 19041) (Actualización de mayo de 2020 de Windows 10). También conocida como "20H1". | N/D |
1.0.0 | DML_FEATURE_LEVEL_1_0 | 0x1000 |
Windows 10, versión 1903 (10.0; Compilación 18362) (Actualización de mayo de 2019 de Windows 10). También conocida como "19H1". | N/D |
1 Las versiones intermedias 1.2.0 y 1.3.0 de DirectML no estaban ampliamente disponibles.
Selección de una versión de destino de DirectML
Por comodidad, ciertas características del archivo de encabezado DirectML.h
se declaran condicionalmente en función del valor de la macro DML_TARGET_VERSION
. Al establecer la macro DML_TARGET_VERSION
en determinados valores, puede excluir partes de DirectML.h
de la aplicación.
Esto puede resultar útil si usa una copia más reciente de DirectML.h
, pero tiene como destino una versión inferior del binario DirectML, ya que garantiza que cualquier intento de usar características más allá del nivel de destino elegido no se compilará. Este mecanismo es similar a la macro NTDDI_VERSION
(vea Macros para declaraciones condicionales).
Estos son los valores válidos para la macro DML_TARGET_VERSION
.
DML_TARGET_VERSION | Efecto |
---|---|
0x6200 |
Las características que requieren una versión de DirectML más reciente que la 1.13.0 se excluyen de DirectML.h . |
0x6100 |
Las características que requieren una versión de DirectML más reciente que la 1.12.0 se excluyen de DirectML.h . |
0x6000 |
Las características que requieren una versión de DirectML más reciente que la 1.11.0 se excluyen de DirectML.h . |
0x5200 |
Las características que requieren una versión de DirectML más reciente que la 1.10.0 se excluyen de DirectML.h . |
0x5100 |
Las características que requieren una versión de DirectML más reciente que la 1.9.0 se excluyen de DirectML.h . |
0x5000 |
Las características que requieren una versión de DirectML más reciente que la 1.8.0 se excluyen de DirectML.h . |
0x4100 |
Las características que requieren una versión de DirectML más reciente que la 1.7.0 se excluyen de DirectML.h . |
0x4000 |
Las características que requieren una versión de DirectML más reciente que la 1.6.0 se excluyen de DirectML.h . |
0x3100 |
Las características que requieren una versión de DirectML más reciente que la 1.5.0 se excluyen de DirectML.h . |
0x3000 |
Las características que requieren una versión de DirectML más reciente que la 1.4.0 se excluyen de DirectML.h . |
0x2000 |
Las características que requieren una versión de DirectML más reciente que la 1.1.0 se excluyen de DirectML.h . |
0x1000 |
Las características que requieren una versión de DirectML más reciente que la 1.0.0 se excluyen de DirectML.h . |
Sin establecer | La versión de destino se selecciona automáticamente. Para obtener información más detallada, vea a continuación. |
Si DML_TARGET_VERSION
no se establece, se selecciona automáticamente mediante lo siguiente.
- Si se define la macro
DML_TARGET_VERSION_USE_LATEST
, se selecciona la versión de destino más reciente. - De lo contrario, la versión de destino se selecciona en función del valor de la macro
NTDDI_VERSION
.NTDDI_WIN10_ZN
da como resultado una versión de destino de0x6000
.NTDDI_WIN10_NI
da como resultado una versión de destino de0x5000
.NTDDI_WIN10_CO
da como resultado una versión de destino de0x4000
.NTDDI_WIN10_FE
da como resultado una versión de destino de0x3000
.NTDDI_WIN10_VB
da como resultado una versión de destino de0x2000
.NTDDI_WIN10_19H1
da como resultado una versión de destino de0x1000
.- Si
NTDDI_VERSION
no se define, se selecciona la versión de destino más reciente (como siDML_TARGET_VERSION_USE_LATEST
se hubiera especificado).
Ejemplo
Considere la posibilidad de usar una aplicación con la versión 10.0.19041.0 (Windows 10, versión 2004) del Kit de desarrollo de software de Windows (SDK). En la tabla anterior, la versión de DirectML a la que esto corresponde es 1.1.0 y la correspondiente DML_TARGET_VERSION
es 0x2000
.
Si no establece DML_TARGET_VERSION
ni las macros NTDDI_VERSION
, la versión de destino seleccionada tendrá como valor predeterminado 0x2000
y todo lo que hay en DirectML.h
estará disponible para su uso.
Si quiere que la aplicación pueda ejecutarse en Windows 10, versión 1903 (10.0; Compilación 18362), entonces podría #define DML_TARGET_VERSION 0x1000
, que excluirá todo el contenido de DirectML.h
que no sea compatible con DirectML versión 1.0.0. Esto garantiza que cualquier intento de usar la funcionalidad que requiera una versión mayor no se podrá compilar.
Versión de DirectML comparada con el nivel de característica
La versión de DirectML (por ejemplo, 1.0.0 o 1.4.0) describe una versión determinada de DirectML, incluido su archivo de encabezado DirectML.h
y archivo .lib
asociados.
El nivel de característica (por ejemplo, DML_FEATURE_LEVEL_1_0
, o DML_FEATURE_LEVEL_2_0
) describe la funcionalidad de la implementación subyacente de la API, que puede variar de la versión de DirectML.h
usada.
Por ejemplo, una aplicación que se compila en un SDK más reciente, pero que se ejecuta en una versión anterior de Windows, podría (en tiempo de ejecución) ver un nivel de característica compatible inferior, incluso si se compila con el SDK más reciente.