collapse

* Posts Recentes

Macaquinho elétrico diy por josecarlos
[24 de Maio de 2023, 20:26]


Coleção de motores e cenas por jm_araujo
[23 de Maio de 2023, 12:05]


Teclado (GMMK) com Avaria por jm_araujo
[23 de Maio de 2023, 11:56]


Compressor sem óleo por dropes
[10 de Maio de 2023, 13:50]


Como interagir com um textEdit? por SerraCabo
[23 de Abril de 2023, 19:48]


Microondas - Avaria por SerraCabo
[21 de Abril de 2023, 12:35]


Controlado de ou para trotinete por filjoa
[21 de Abril de 2023, 09:37]


Motherboard e HDD Sata por almamater
[19 de Abril de 2023, 18:22]


Reflow Hot plate, por menos de 10€ por dropes
[08 de Abril de 2023, 19:43]


Que sinal é enviado à válvula? por almamater
[29 de Março de 2023, 15:24]

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

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

Offline blabla

  • Mini Robot
  • *
  • Mensagens: 249
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