Confira !!
Com o LLVM 15 ramificado e principal agora aberto para o LLVM 16, uma das primeiras mudanças para este próximo ciclo de lançamento do compilador é habilitar a vetorização escalável por padrão para RISC-V com destinos suportados para instruções de vetor RISC-V.
O desenvolvedor do LLVM, Philip Reames, ativou a vetorização escalável por padrão para destinos RISC-V suportados com extensões Zve ou V. Ele explicou com a mudança:
Essa alteração habilita a vetorização (usando apenas vetorização escalável, vetores fixos ainda não estão habilitados) para RISCV quando instruções vetoriais estão disponíveis para a configuração de destino.
Neste ponto, a configuração resultante deve ser estável (por exemplo, sem falhas) e lucrativa (ou seja, poucos casos em que os loops escalares vencem os vetoriais), mas não será particularmente bem ajustado (ou seja, emitimos o melhor loop vetorial possível) . O objetivo dessa mudança é alinhar os testes entre as organizações e garantir que a configuração padrão corresponda ao que os downstreams estão usando o mais próximo possível.
Isso expõe uma grande quantidade de código que não estava ativado por padrão e, portanto, pode não ter sido totalmente exercido. Dado isso, ter problemas não é inesperado. Se você encontrar problemas, inclua o máximo de informações possível ao reverter essa alteração.
Dois dias se passaram e até agora nenhuma reversão, então espero que esteja bem. Mais detalhes para os interessados em reviews.llvm.org . Com essa mudança no início do ciclo de desenvolvimento do LLVM 16, ainda há muito tempo para melhorar o suporte à vetorização RISC-V do compilador antes do lançamento estável, não até março.
O RISC-V "V" é a extensão matemática vetorial completa para essa arquitetura de CPU livre de royalties, enquanto o Zve é um subconjunto "modesto" destinado a núcleos menores em dispositivos incorporados e microcontroladores. O Vector Extension 1.0 do RISC-V foi congelado desde o ano passado e considerado estável o suficiente para iniciar o trabalho do software. A especificação RISC-V V 1.0 para os interessados pode ser encontrada via GitHub.
Até a próxima !! .
Nenhum comentário:
Postar um comentário