Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O DirectML é distribuído como um componente do sistema do Windows e está disponível como parte do sistema operacional Windows (SO) no Windows 10, versão 1903 (10.0; Build 18362) e mais recente.
A partir do DirectML versão 1.4.0, 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 corrigida do DirectML ou quando executados em versões mais antigas do Windows 10.
O DirectML segue as convenções de controle de versão semântica . Ou seja, os números de versão seguem o formato major.minor.patch. A primeira versão do DirectML tem uma versão 1.0.0.
Tabela de versões
| Versão do DirectML | Nível de recurso com suporte (consulte o histórico de nível de recurso do DirectML) | DML_TARGET_VERSION | Disponível pela primeira vez em (SO) | Disponível pela primeira vez em (Redistribuível) |
|---|---|---|---|---|
| 1.15.4 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Não aplicável | DirectML-1.15.4 |
| 1.15.3 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Não aplicável | DirectML-1.15.3 |
| 1.15.2 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Não aplicável | DirectML-1.15.2 |
| 1.15.1 | DML_FEATURE_LEVEL_6_4 | 0x6400 |
Não aplicável | DirectML-1.15.1 |
| 1.15.0 | DML_FEATURE_LEVEL_6_4 e DML_FEATURE_LEVEL_6_3 |
0x6400 ou 0x6300 |
Não aplicável | DirectML-1.15.0 |
| 1.13.1 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Não aplicável | DirectML-1.13.1 |
| 1.13.0 | DML_FEATURE_LEVEL_6_2 | 0x6200 |
Não aplicável | DirectML-1.13.0 |
| 1.12.0 | DML_FEATURE_LEVEL_6_1 | 0x6100 |
Não aplicável | DirectML-1.12.0 |
| 1.11.0 | DML_FEATURE_LEVEL_6_0 | 0x6000 |
Não aplicável | DirectML-1.11.0 |
| 1.10.0 | DML_FEATURE_LEVEL_5_2 | 0x5200 |
Não aplicável | DirectML-1.10.0 |
| 1.9.0 | DML_FEATURE_LEVEL_5_1 | 0x5100 |
Não aplicável | 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ão aplicável | 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ão aplicável | DirectML-1.5.0 |
| 1.4.01 | DML_FEATURE_LEVEL_3_0 | 0x3000 |
Não aplicável | 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). Também conhecido como "20H1". | Não aplicável |
| 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). Também conhecido como "19H1". | Não aplicável |
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, você pode excluir partes do DirectML.h seu aplicativo.
Isso pode ser útil se você estiver usando uma cópia mais recente do DirectML.h, mas estiver direcionando 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 seja compilada. Esse 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 a 1.15.0 ou que são DML_FEATURE_LEVEL_6_4 recursos 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 a 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 a 1.7.0 são excluídos do DirectML.h. |
0x4000 |
Todos os recursos que exigem uma versão do DirectML mais recente que a 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 definida | A versão de destino é selecionada automaticamente para você. Confira os detalhes abaixo. |
Se DML_TARGET_VERSION não estiver definido, ele será 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 será 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 SDK (Software Development Kit) do Windows. Na tabela acima, a versão do DirectML à qual isso corresponde é 1.1.0 e a correspondente DML_TARGET_VERSION é 0x2000.
Se você não definir as macros nem as DML_TARGET_VERSIONNTDDI_VERSION macros, a versão de destino selecionada será padronizada para 0x2000, e tudo estará DirectML.h 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ê poderá #define DML_TARGET_VERSION 0x1000, o que excluirá todo o conteúdo que DirectML.h não é compatível com o 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 recurso
A versão do DirectML (por exemplo, 1.0.0 ou 1.4.0) descreve uma versão específica do DirectML, incluindo seu arquivo de cabeçalho e .lib arquivo associadosDirectML.h.
O nível de recurso (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 da versão usada DirectML.h .
Por exemplo, um aplicativo criado em um SDK mais recente, mas em execução em uma versão mais antiga do Windows, pode (em runtime) ver um nível de recurso com suporte mais baixo, mesmo que seja compilado no SDK mais recente.