Confira !
Foi falado muitas vezes por várias partes, mas até agora permaneceu indefinido da base de código LLVM principal: um back-end SPIR-V para LLVM que iria do LLVM para esta representação intermediária Khronos mais notavelmente usada pelos drivers OpenCL e Vulkan . Os engenheiros da Intel estão avançando e esperam ajudar a obter um back-end SPIR-V adequado para o LLVM.
Houve vários esforços e planos fora da árvore discutidos por diferentes empresas / desenvolvedores para ter um back-end SPIR-V no LLVM como este IR chave suportado pelas APIs Khronos modernas. Com o mais recente push e "solicitação de comentários" da Intel, eles estão procurando ter um back-end adequado em LLVM para direcionar SPIR-V - inicialmente com um foco de computação, mas a possibilidade de estender para suporte a shader 3D para Vulkan mais tarde.
Houve opiniões divergentes antes sobre como um back-end de LLVM para SPIR-V deveria parecer, enquanto com a abordagem Intel proposta seria um design de back-end "verdadeiro". O ponto de partida, se acordado, seria o código Khronos existente e, conforme mencionado, focar inicialmente em casos de uso de OpenCL / computação.
Se tudo correr bem, os engenheiros da Intel esperam poder fazer o upstream de um back-end SPIR-V "experimental" no repositório LLVM nos próximos meses.
Veja este tópico da lista de discussão para os interessados. O código de back-end inicial está sendo desenvolvido por meio deste repositório Khronos GitHub .
Até agora, na discussão resultante, foram levantadas questões sobre o back-end MLIR SPIR-V do LLVM e seu futuro, caso este back-end LLVM venha a acontecer. Mas, por enquanto, o código MLIR SPIR-V está mais focado no Vulkan, enquanto este back-end LLVM SPIR-V proposto é mais voltado para o uso de OpenCL / computação, então pelo menos no curto prazo ambos os esforços podem coexistir. Em qualquer caso, se este novo back-end do LLVM der certo, isso poderia ajudar a permitir que o código existente atualmente sendo passado para front-ends do LLVM como o Clang seja redirecionado para uso do OpenCL / GPU.
Até a próxima !!
Nenhum comentário:
Postar um comentário