Novidades: A Intel lançou uma ferramenta de código aberto para migrar código para SYCL1 através de um projeto chamado SYCLomatic, que ajuda os desenvolvedores a portar mais facilmente o código CUDA para SYCL e C++ para acelerar a programação de arquitetura cruzada para arquiteturas heterogêneas. Este projeto de código aberto permite a colaboração da comunidade para promover a adoção do padrão SYCL, um passo fundamental para libertar desenvolvedores de um ecossistema proprietário de um único fornecedor.
"Migrar para C++ com SYCL dá ao código um alinhamento ISO C++mais mais forte, suporte multivendor para aliviar o bloqueio do fornecedor e suporte à multiarquitetura para fornecer flexibilidade no aproveitamento de todo o poder das novas inovações de hardware. A SYCLomatic oferece uma ferramenta valiosa para automatizar grande parte do trabalho, permitindo que os desenvolvedores se concentrem mais na sintonia personalizada do que na portabilidade."
Por que isso importa: Embora a inovação de hardware tenha levado a uma paisagem arquitetônica heterogênea diversificada para a computação, o desenvolvimento de software tornou-se cada vez mais complexo, dificultando a aproveitamento das CPUs e aceleradoras. Os desenvolvedores de hoje e suas equipes estão presos por tempo, dinheiro e recursos para acomodar a reescrita e o teste de código para aumentar o desempenho do aplicativo para essas diferentes arquiteturas. Os desenvolvedores estão procurando alternativas abertas que melhorem o tempo de valor, e a Intel está fornecendo um caminho mais fácil e mais curto para permitir a escolha do hardware.
O que é SYCL e Project SYCLomatic: O SYCL, um padrão do Grupo Khronos baseado em C++, amplia os recursos C++ para suportar configurações de memória multiarquitetura e desarticulação. Para iniciar este projeto, a Intel abriu a tecnologia por trás de sua Ferramenta de Compatibilidade DPC++ para avançar ainda mais os recursos de migração para produzir mais aplicativos baseados em SYCL. Reutilizar códigos em todas as arquiteturas simplifica o desenvolvimento, reduzindo tempo e custos para manutenção contínua de códigos.
Utilizando a licença Apache 2.0 com exceção llvm, o projeto SYCLomatic hospedado no GitHub oferece uma comunidade para desenvolvedores contribuirem e fornecerem feedback para abrir ainda mais o desenvolvimento heterogêneo entre CPUs, GPUs e FPGAs.
Como funciona a ferramenta SYCLomatic: O SYCLomatic auxilia os desenvolvedores na portabilidade do código CUDA para o SYCL, normalmente migrando 90-95% do código CUDA automaticamente para o código SYCL2. Para concluir o processo, os desenvolvedores completam o resto da codificação manualmente e, em seguida, sintonizam sob medida o nível de desempenho desejado para a arquitetura.
Como funciona o uso da migração de códigos: Organizações de pesquisa e clientes intel usaram com sucesso a Ferramenta de Compatibilidade Intel® DPC+++, que tem as mesmas tecnologias que o SYCLomatic,para migrar o código CUDA para sycl (ou Data Parallel C++, implementação da SYCL) da OneAPI nas arquiteturas de vários fornecedores. Exemplos incluem a Universidade de Estocolmo com o GROMACS 20223, o Zuse Institute Berlin (ZIB) com easyWave, Samsung Medison e Bittware (veja um conteúdo API DevSummit para mais exemplos). Vários clientes também estão testando códigos em GPUs baseadas em arquitetura Intel® Xe atuais e futuras, incluindo o supercomputador Aurora do Laboratório Nacional de Argonne, o Centro de Supercomputação Leibniz (LRZ), a GE Healthcare e outros.
Onde obter SYCLomatic: SYCLomatic é um projeto do GitHub. O portal GitHub inclui um guia "contributing.md" descrevendo as etapas de contribuições técnicas para o projeto para garantir a máxima facilidade. Os desenvolvedores são incentivados a usar a ferramenta e fornecer feedback e contribuições para avançar na evolução da ferramenta.
"CRK-HACC é um código de simulação cosmológica do corpo N ativamente em desenvolvimento. Para se preparar para o Aurora, a Ferramenta de Compatibilidade Intel DPC++ nos permitiu migrar rapidamente mais de 20 núcleos para o SYCL. Como a versão atual da ferramenta de migração de código não suporta migração para funtores, escrevemos uma ferramenta simples de clang para refatorar o código-fonte SYCL resultante para atender às nossas necessidades. Com o projeto SYCLomatic de código aberto, planejamos integrar nosso trabalho anterior para uma solução mais robusta e contribuir para fazer dos funtores parte das opções de migração disponíveis", disse Steve (Esteban) Rangel, da HACC (Hardware/Hybrid Accelerated Cosmology Code), Cosmological Physics & Advanced Computing (anl.gov).
Recursos para desenvolvedores:
- Projeto SYCLomatic no GitHub | guia Contributing.md
- Comece a desenvolver: Livro: Masterização da Programação de Sistemas Heterogêneos usando C++ & SYCL | Essenciais do treinamento da SYCL
- CodeProject: Usando oneAPI para converter código CUDA em SYCL
- Intel® DevCloud: Um ambiente gratuito para acessar as ferramentas Intel® oneAPI e desenvolver e testar código em uma variedade de arquiteturas Intel® (CPU, GPU, FPGA).
Mais Contexto: Vantagem de software da Intel decodificados | Intel oneAPI