Novidades no  Vulkan 1.3

Como você pode esperar, o Vulkan 1.3 adiciona uma variedade de recursos que são amplamente implementáveis ​​em hardware com suporte ativo. Na verdade, qualquer hardware que tenha uma implementação 1.2 com suporte ativo deve ser capaz de suportar o Vulkan 1.3 - mas isso não nos impediu de incluir vários recursos interessantes, todos não opcionais!


Alguns recursos que antes eram opcionais em versões anteriores do Vulkan agora são obrigatórios; notavelmente suporte a endereços de dispositivos de buffer , permitindo que os desenvolvedores comecem a usar ponteiros em todo o ecossistema. Ainda há trabalho a fazer para dar suporte a isso em HLSL, mas os usuários de ferramentas e GLSL já podem tirar proveito disso. Arm lançou uma postagem no blog explicando os prós e contras desse recurso exclusivo, se você estiver interessado em aprender mais. O Vulkan 1.3 também requer o modelo de memória Vulkan , que melhora as garantias feitas pela especificação sobre primitivas atômicas e de sincronização.

VK_EXT_subgroup_size_control adicionou suporte para controle mais preciso sobre subgrupos. Em particular, ele permite que os fornecedores anunciem vários tamanhos de subgrupos, permite que os desenvolvedores selecionem um tamanho de subgrupo específico (quando suportado) e requer um mapeamento definido entre subgrupos e grupos de trabalho para tamanhos de grupo de trabalho alinhados. No Vulkan 1.3, qualquer sombreador de computação SPIR-V 1.6 obterá automaticamente o mapeamento definido e o tamanho do subgrupo variável.

Estruturas de aprendizado de máquina de nível superior estão executando cada vez mais modelos por meio do Vulkan e, como uma etapa para melhorar esse caminho de aceleração, adicionamos VK_KHR_shader_integer_dot_product ao Vulkan 1.3. Os algoritmos de aprendizado de máquina devem ser capazes de usar isso de preferência às funções de produto ponto implementadas manualmente e se beneficiar da aceleração de hardware dessas instruções quando disponíveis. O fato de uma determinada instrução ser acelerada é exposto pela API para permitir um melhor ajuste por dispositivo.

O Vulkan 1.3 também adiciona uma série de pequenas melhorias que tornam o suporte ao ecossistema mais consistente e permitem recursos futuros, como VK_KHR_synchronization2 , VK_KHR_maintenance4 , VK_KHR_copy_commands2 , VK_KHR_format_feature_flags2 e VK_EXT_texel_buffer_alignment .

Para obter uma lista completa de funcionalidades adicionadas ao Vulkan 1.3, consulte o apêndice da versão 1.3 do Vulkan e a seção de requisitos de recursos na especificação do Vulkan 1.3.