collapse

* Posts Recentes

Super obsolescência super programada? por SerraCabo
[06 de Agosto de 2022, 11:36]


Motor de aspirador por dropes
[02 de Agosto de 2022, 22:18]


Serviço de dessoldar e soldar micro-usb tlm Samsung GT-S6312 por senso
[01 de Agosto de 2022, 22:20]


Condensador Poly .47K X2 por brunus
[26 de Julho de 2022, 16:11]


pequeno robot arte por Robotarium
[21 de Julho de 2022, 15:45]


Diferença entre fontes por jm_araujo
[13 de Julho de 2022, 09:27]


Dual Op-amp Test board - uma ideia simples, barata e bem esgalhada. por dropes
[10 de Julho de 2022, 20:35]


PHILCO Radio Manufacturing Factory Automation 1929 por SerraCabo
[10 de Julho de 2022, 18:22]


Meu novo robô por josecarlos
[08 de Julho de 2022, 23:06]


Desenvolvimento para RaspberryPi Pico em Windows < 10 por KammutierSpule
[06 de Julho de 2022, 09:15]

Autor Tópico: BOLT – Aumento de performance C/C++ e Rust, GCC e LLVM com o hardware existente  (Lida 296 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 235
Bom dia a todos,

O FaceBook (Meta) tem estado a desenvolver internamente já à uns anos uma ferramenta chamada BOLT que faz a otimização do Layout do ficheiro de executável de Linux, o ELF.
Esta ferramenta é particularmente efetiva pois permite um grande aumento de performance a todos os programas compilados em GCC e em LLVM, escritos em N linguagens de programação, coisas como C/C++, Rust, mas também muitas outras que usam o compilador do GCC e LLVM como backend. Mesmo que o suporte para a vossa linguagem não esteja lá neste momento, em breve deve aparecer esse suporte para mais esta ferramenta.

BOLT Merged Into LLVM To Optimize Binaries For Faster Performance
https://www.phoronix.com/scan.php?page=news_item&px=LLVM-Lands-BOLT

Até coisas como o próprio compilador GCC e o próprio compilador LLVM ficam mais rápidos a executar se forem compilados usando o BOLT e a o ganho de performance é mesmo muito grande.
Estamos a falar de coisas como 36 % para o LLVM e 21 % para o GCC. O aumento de performance  máximo atinge-se quando ligamos as três opções de optimização:

1. BOLT
2. LTO – Link Time Optimization
3. PGO – Profile Guided Optimization

Podendo atingir na execução do compilador Clang um aumento de performance na casa dos 49.42 % segundo os gráficos da página em cima. A que corresponde uma diminuição brutal dos tempos de compilação.

No caso dos exemplos dados na página anterior os binários que possam ser compilados com Clang LLVM. quando as 3 estratégias de otimização são combinadas, pode vir a ter um aumento entre os 34 % e os 68.5 %, ora isso é um aumento de performance mesmo muito grande! E isto sem alterar uma unica linha de código. E isto é para além das optimizações normais dos compiladores o -O3 e afins.

E até o Kernel de Linux tem muito a ganhar pelo facto de ser compilado com este otimizador de de Layout de ELF, pois a sua performance aumenta com repercussões em todo o sistema, por estarmos a falar do Kernel.

Facebook Has Been Working On BOLT'ing The Linux Kernel For Greater Performance
https://www.phoronix.com/scan.php?page=news_item&px=Facebook-BOLTing-The-Kernel

Neste momento a code tree do BOLT foi “merged” para dentro do projecto do LLVM pelo que a sua integração ainda deve ser melhor.

Estes são desenvolvimentos muito interessantes que nos vão trazer grandes aumentos de performance a custo zero.

Pensem nas toneladas de dióxido de carbono que vão ser geradas a menos por todos os computadores de todo o mundo, pela diminuição da necessidade de recursos físicos para um determinado projeto e pela diminuição de consumo de energia em todos os computadores.


Obrigado,

Cumprimentos,
João