Partilhar via


Histórico de versões do DirectML

O DirectML é distribuído como um componente do sistema do Windows e está disponível como parte do sistema operacional Windows no Windows 10, versão 1903 (10.0; Build 18362) e mais recente.

A partir da versão 1.4.0 do DirectML, o DirectML também está disponível como um pacote redistribuível autônomo (consulte Microsoft.AI.DirectML), que é útil para aplicativos que desejam usar uma versão fixa do DirectML ou quando executados em versões mais antigas do Windows 10.

O DirectML segue as convenções de versionamento semântico . Ou seja, os números de versão seguem o formulário major.minor.patch. A primeira versão do DirectML tem uma versão de 1.0.0.

Tabela de versões

Versão do DirectML Nível de funcionalidade suportado (consulte Histórico de nível de funcionalidade DirectML) DML_TARGET_VERSION Disponível pela primeira vez em (OS) Disponível pela primeira vez em (Redistribuível)
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 e DML_FEATURE_LEVEL_6_3 0x6400 ou 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 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 DirectML-1.10.0
1.9.0 DML_FEATURE_LEVEL_5_1 0x5100 N/A DirectML-1.9.0
1.8.0 DML_FEATURE_LEVEL_5_0 0x5000 Windows 11 (Compilação 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 (compilação 10.0.22000; 21H2) DirectML-1.6.0
1.5.0 DML_FEATURE_LEVEL_3_1 0x3100 N/A 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, versão 2004 (10.0; Build 19041) (Atualização de maio de 2020 do Windows 10). Aka "20H1". N/A
1.0.0 DML_FEATURE_LEVEL_1_0 0x1000 Windows 10, versão 1903 (10.0; Build 18362) (Atualização de maio de 2019 do Windows 10). Aka "19H1". N/A

1 As versões intermediárias 1.2.0 e 1.3.0 do DirectML não foram amplamente disponibilizadas.

Selecionando uma versão de destino do DirectML

Por conveniência, determinados recursos no DirectML.h arquivo de cabeçalho são declarados condicionalmente com base no valor da DML_TARGET_VERSION macro. Ao definir a DML_TARGET_VERSION macro para determinados valores, pode excluir partes do DirectML.h do seu aplicativo.

Isso pode ser útil se estiver a usar uma versão mais recente de DirectML.h, mas tenha como objetivo uma versão inferior do binário DirectML, pois garante que qualquer tentativa de usar recursos além do nível de destino escolhido não conseguirá ser compilada. Este mecanismo é semelhante à NTDDI_VERSION macro (consulte Macros para declarações condicionais).

Aqui estão os valores válidos para a DML_TARGET_VERSION macro.

DML_TARGET_VERSION Efeito
0x6400 Todos os recursos que exigem uma versão do DirectML mais recente que 1.15.0 são excluídos do DirectML.h.
0x6300 Todos os recursos que exigem uma versão do DirectML mais recente que 1.15.0, ou que são recursos DML_FEATURE_LEVEL_6_4 , são excluídos do DirectML.h.
0x6200 Todos os recursos que exigem uma versão do DirectML mais recente que 1.13.0 são excluídos do DirectML.h.
0x6100 Todos os recursos que exigem uma versão do DirectML mais recente que 1.12.0 são excluídos do DirectML.h.
0x6000 Todos os recursos que exigem uma versão do DirectML mais recente que 1.11.0 são excluídos do DirectML.h.
0x5200 Todos os recursos que exigem uma versão do DirectML mais recente que 1.10.0 são excluídos do DirectML.h.
0x5100 Todos os recursos que exigem uma versão do DirectML mais recente que 1.9.0 são excluídos do DirectML.h.
0x5000 Todos os recursos que exigem uma versão do DirectML mais recente que 1.8.0 são excluídos do DirectML.h.
0x4100 Todos os recursos que exigem uma versão do DirectML mais recente que 1.7.0 são excluídos do DirectML.h.
0x4000 Todos os recursos que exigem uma versão do DirectML mais recente que 1.6.0 são excluídos do DirectML.h.
0x3100 Todos os recursos que exigem uma versão do DirectML mais recente que 1.5.0 são excluídos do DirectML.h.
0x3000 Todos os recursos que exigem uma versão do DirectML mais recente que 1.4.0 são excluídos do DirectML.h.
0x2000 Todos os recursos que exigem uma versão do DirectML mais recente que 1.1.0 são excluídos do DirectML.h.
0x1000 Todos os recursos que exigem uma versão do DirectML mais recente que 1.0.0 são excluídos do DirectML.h.
Não definido A versão de destino é selecionada automaticamente para você. Veja mais detalhes abaixo.

Se DML_TARGET_VERSION não estiver definido, então ele é selecionado automaticamente pelo seguinte.

  • Se a DML_TARGET_VERSION_USE_LATEST macro estiver definida, a versão de destino mais recente será selecionada.
  • Caso contrário, a versão de destino é selecionada com base no valor da NTDDI_VERSION macro.
    • NTDDI_WIN10_ZN resulta em uma versão de destino do 0x6000.
    • NTDDI_WIN10_NI resulta em uma versão de destino do 0x5000.
    • NTDDI_WIN10_CO resulta em uma versão de destino do 0x4000.
    • NTDDI_WIN10_FE resulta em uma versão de destino do 0x3000.
    • NTDDI_WIN10_VB resulta em uma versão de destino do 0x2000.
    • NTDDI_WIN10_19H1 resulta em uma versão de destino do 0x1000.
    • Se NTDDI_VERSION não estiver definido, a versão de destino mais recente será selecionada (como se DML_TARGET_VERSION_USE_LATEST tivesse sido especificada).

Exemplo

Considere um aplicativo usando a versão 10.0.19041.0 (Windows 10, versão 2004) do Windows Software Development Kit (SDK). Na tabela acima, a versão do DirectML à qual isso corresponde é 1.1.0 e a correspondente DML_TARGET_VERSION é 0x2000.

Se não definir as macros DML_TARGET_VERSION nem NTDDI_VERSION, a versão de destino selecionada será por padrão 0x2000, e tudo em DirectML.h estará disponível para uso.

Se você quiser que seu aplicativo possa ser executado no Windows 10, versão 1903 (10.0; Build 18362), então você pode #define DML_TARGET_VERSION 0x1000, o que excluirá todo o conteúdo DirectML.h que não é suportado pelo DirectML versão 1.0.0. Isso garante que qualquer tentativa de usar a funcionalidade que exija uma versão maior não será compilada.

Versão do DirectML versus nível de funcionalidade

A versão do DirectML (por exemplo, 1.0.0 ou 1.4.0) descreve um lançamento específico do DirectML, incluindo o seu arquivo de cabeçalho DirectML.h e o arquivo associado .lib.

O nível de funcionalidade (por exemplo, DML_FEATURE_LEVEL_1_0, ou DML_FEATURE_LEVEL_2_0) descreve a capacidade da implementação subjacente da API, que pode variar consoante a versão de DirectML.h utilizada.

Por exemplo, o desenvolvimento de uma aplicação contra um SDK mais recente, mas em execução numa versão mais antiga do Windows, pode, em tempo de execução, observar um nível de funcionalidades suportadas mais baixo, mesmo que tenha sido compilada com o SDK mais recente.

Ver também