Confira !!
Um recurso suportado pelo GNU Compiler Collection (GCC) que infelizmente não é usado com mais frequência é o FMV (função multi-versão) para suportar várias versões de uma função com a função selecionada selecionada com base no processador de destino em uso. O GCC FMV em x86_64 permite que diferentes funções sejam usadas, seja suportando SSE4.2, AVX ou até mesmo uma microarquitetura de CPU específica. A Arm está finalmente trabalhando no suporte a várias versões da função GCC para AArch64.
O multi-versioning da função GCC em x86_64 facilita para os desenvolvedores a criação de funções otimizadas para caminhos de código quente que em tempo de execução serão usados por um processador compatível/relevante. Função Multi-Versioning permite o manuseio em tempo de execução do caminho de código mais apropriado para uma determinada função sem ter que recorrer ao envio de vários binários ou aumentar os requisitos básicos para o seu software. Mas atualmente o GCC FMV funciona apenas para x86/x86_64 e POWER. Além disso, isso atualmente só funciona com o front-end C++ do GCC.
O exemplo de sintaxe FMV da documentação do GCC sobre multiversão de função.
A Arm está procurando oferecer suporte ao GCC Function Multi-versioning para sua arquitetura de CPU e publicou recentemente uma especificação beta em torno dela.
A Arm anunciou o seu trabalho beta no suporte a FMV e atualmente está buscando feedback dos desenvolvedores sobre o tratamento proposto. Com o FMV on Arm, eles procuram permitir que os desenvolvedores usem uma versão alvo do Arm como uma das mudanças planejadas. No GitHub do Arm está a especificação proposta para o Arm FMV.
Até a próxima !!
Nenhum comentário:
Postar um comentário