Compartir a través de


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 de 0x6000.
    • NTDDI_WIN10_NI da como resultado una versión de destino de 0x5000.
    • NTDDI_WIN10_CO da como resultado una versión de destino de 0x4000.
    • NTDDI_WIN10_FE da como resultado una versión de destino de 0x3000.
    • NTDDI_WIN10_VB da como resultado una versión de destino de 0x2000.
    • NTDDI_WIN10_19H1 da como resultado una versión de destino de 0x1000.
    • Si NTDDI_VERSION no se define, se selecciona la versión de destino más reciente (como si DML_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.

Consulte también