Repolode
google

google/autofdo

Conjunto de ferramentas para AutoFDO, um fluxo de otimização guiada por perfil que usa amostras de hardware do Linux perf para melhorar binários compilados.

Estrelas
623
Forks
128
Issues abertas
100
Último commit
mês passado

O que é?

AutoFDO é um conjunto de ferramentas para otimização automática orientada por feedback. Em vez de instrumentar um programa, ele coleta amostras de execução dos contadores de desempenho do hardware usando Linux perf, converte essas amostras em um perfil que o compilador consegue ler e devolve esse perfil ao compilador para orientar as decisões de otimização.

O repositório contém as ferramentas de conversão e processamento de perfis, desenvolvidas com base em componentes relacionados ao LLVM e ao GCOV. A compilação é gerenciada pelo CMake, com uma opção para escolher entre ferramentas baseadas em LLVM ou GCOV, e há suporte para Ubuntu 20.04, 22.04 e CentOS 9. É possível compilar com clang ou g++.

O projeto informa que o código do Propeller foi movido para um repositório separado, google/llvm-propeller.

Recursos principais

  • 01Coleta amostras de perfis do Linux perf sem instrumentar o programa.
  • 02Converte amostras de perfis em um formato que o compilador pode usar para otimização.
  • 03Oferece compilações distintas das ferramentas para LLVM e GCOV, selecionadas pelo CMake.
  • 04Compila com clang ou g++ no Ubuntu 20.04, 22.04 e CentOS 9.

Casos de uso

  • Melhorar o desempenho em tempo de execução de binários C++ de produção usando perfis de cargas de trabalho reais.
  • Compilar ferramentas do AutoFDO para pipelines de compiladores baseados em LLVM em servidores Linux.
  • Experimentar a otimização guiada por perfil sem alterar o código-fonte.

Início rápido

  1. 1

    Instale os pré-requisitos no Ubuntu 20.04 ou 22.04

    sudo apt install libunwind-dev libgflags-dev libssl-dev libelf-dev protobuf-compiler cmake libzstd-dev clang g++
  2. 2

    Clone o repositório com os submódulos

    git clone --recursive --depth 1 https://github.com/google/autofdo.git
  3. 3

    Crie um diretório de build e compile as ferramentas do LLVM

    cd autofdo && mkdir build && cd build && cmake -DENABLE_TOOL=LLVM -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=On ../
  4. 4

    Compile as ferramentas do autofdo

    cmake -DENABLE_TOOL=GCOV -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=On ../ && make -j 4

Antes de usar

  • As instruções de build são destinadas somente ao Ubuntu 20.04, Ubuntu 22.04 e CentOS 9.
  • O Ubuntu 20.04 precisa de uma versão do cmake mais recente que a fornecida, pois o build do LLVM incluído falha com a versão padrão.
  • A base de código do Propeller foi movida para google/llvm-propeller.

Em coleções

Tópicos

#compiler#performance#profile-guided-optimization#llvm#linux-perf#cpp

Perguntas frequentes

O que é autofdo?
Conjunto de ferramentas para AutoFDO, um fluxo de otimização guiada por perfil que usa amostras de hardware do Linux perf para melhorar binários compilados. AutoFDO é um conjunto de ferramentas para otimização automática orientada por feedback. Em vez de instrumentar um programa, ele coleta amostras de execução dos contadores de desempenho do hardware usando Linux perf, converte essas amostras em um perfil que o compilador consegue ler e devolve esse perfil ao compilador para orientar as decisões de otimização.
autofdo é gratuito? Qual é a licença?
autofdo é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
autofdo ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de autofdo foi em 30 de set. de 2026.
Para que posso usar autofdo?
Melhorar o desempenho em tempo de execução de binários C++ de produção usando perfis de cargas de trabalho reais. Compilar ferramentas do AutoFDO para pipelines de compiladores baseados em LLVM em servidores Linux. Experimentar a otimização guiada por perfil sem alterar o código-fonte.
Como instalar autofdo?
Instale os pré-requisitos no Ubuntu 20.04 ou 22.04: sudo apt install libunwind-dev libgflags-dev libssl-dev libelf-dev protobuf-compiler cmake libzstd-dev clang g++ Clone o repositório com os submódulos: git clone --recursive --depth 1 https://github.com/google/autofdo.git Crie um diretório de build e compile as ferramentas do LLVM: cd autofdo && mkdir build && cd build && cmake -DENABLE_TOOL=LLVM -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=On ../ Compile as ferramentas do autofdo: cmake -DENABLE_TOOL=GCOV -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=On ../ && make -j 4
Onde consigo autofdo?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/google/autofdo

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados