Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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_LATESTmacro 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_VERSIONmacro.-
NTDDI_WIN10_ZNresulta em uma versão de destino do0x6000. -
NTDDI_WIN10_NIresulta em uma versão de destino do0x5000. -
NTDDI_WIN10_COresulta em uma versão de destino do0x4000. -
NTDDI_WIN10_FEresulta em uma versão de destino do0x3000. -
NTDDI_WIN10_VBresulta em uma versão de destino do0x2000. -
NTDDI_WIN10_19H1resulta em uma versão de destino do0x1000. - Se
NTDDI_VERSIONnão estiver definido, a versão de destino mais recente será selecionada (como seDML_TARGET_VERSION_USE_LATESTtivesse 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.