collapse

* Posts Recentes

Inside the WILD Lab of CuriousMarc por blabla
[01 de Julho de 2022, 07:22]


Super obsolescência super programada? por SerraCabo
[26 de Junho de 2022, 23:10]


Meu novo robô por josecarlos
[26 de Junho de 2022, 20:59]


Bateria lipo para quadcopter/drone miniatura por dropes
[26 de Junho de 2022, 20:19]


Componente N121 ??? por SerraCabo
[19 de Junho de 2022, 21:26]


Curso de Yew.rs, similar ao React, Angular ou Vue mas em Rust. por blabla
[19 de Junho de 2022, 10:21]


ptrace() - Algo muito poderoso, sobre o qual vale a pena saber mais. por blabla
[19 de Junho de 2022, 09:50]


Rust - Community Grants Program Awards Announcement por blabla
[18 de Junho de 2022, 22:59]


"Façanhas" por SerraCabo
[14 de Junho de 2022, 15:42]


Why Rust makes you feel like a GENIUS? por blabla
[09 de Junho de 2022, 09:19]

Autor Tópico: BOLT – Aumento de performance C/C++ e Rust, GCC e LLVM com o hardware existente  (Lida 263 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