Repolode
google

google/autofdo

Linux perf의 샘플링 하드웨어 프로파일을 사용해 컴파일된 바이너리를 개선하는 프로파일 기반 최적화 워크플로인 AutoFDO용 툴체인입니다.

스타
623
포크
128
열린 이슈
100
마지막 커밋
지난달

어떤 프로젝트인가요?

AutoFDO는 자동 피드백 기반 최적화를 위한 도구 모음입니다. 프로그램에 계측 코드를 삽입하는 대신 Linux perf를 사용해 하드웨어 성능 카운터에서 실행 프로파일을 샘플링하고, 이를 컴파일러가 읽을 수 있는 프로파일로 변환한 다음 컴파일러에 다시 전달해 최적화 결정을 유도합니다.

이 저장소에는 LLVM 및 GCOV 관련 구성 요소를 기반으로 만든 프로파일 변환 및 처리 도구가 포함되어 있습니다. CMake로 빌드하며 LLVM 기반 도구와 GCOV 기반 도구 중 하나를 선택할 수 있고, Ubuntu 20.04, 22.04 및 CentOS 9를 지원합니다. clang 또는 g++로 빌드할 수 있습니다.

프로젝트 설명에 따르면 Propeller 코드는 별도 저장소인 google/llvm-propeller로 이동했습니다.

핵심 기능

  • 01프로그램에 계측 코드를 삽입하지 않고 Linux perf에서 샘플링 프로파일을 수집합니다.
  • 02샘플링 프로파일을 컴파일러가 최적화에 사용할 수 있는 형식으로 변환합니다.
  • 03CMake에서 선택할 수 있는 LLVM 및 GCOV 기반 도구 빌드를 제공합니다.
  • 04Ubuntu 20.04, 22.04 및 CentOS 9에서 clang 또는 g++로 빌드할 수 있습니다.

활용 사례

  • 실제 워크로드 프로파일을 사용해 운영 환경의 C++ 바이너리 런타임 성능을 개선합니다.
  • Linux 서버의 LLVM 기반 컴파일러 파이프라인용 AutoFDO 도구를 빌드합니다.
  • 소스 코드를 변경하지 않고 프로파일 기반 최적화를 시험합니다.

빠른 시작

  1. 1

    Ubuntu 20.04 또는 22.04에 필수 구성 요소를 설치합니다

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

    서브모듈을 포함해 저장소를 클론합니다

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

    빌드 디렉터리를 만들고 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

    autofdo 도구를 빌드합니다

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

사용 전 알아둘 점

  • 빌드 안내는 Ubuntu 20.04, Ubuntu 22.04 및 CentOS 9만 대상으로 합니다.
  • Ubuntu 20.04에서는 기본 버전으로 번들 LLVM 빌드가 실패하므로 더 최신 버전의 cmake가 필요합니다.
  • Propeller 코드베이스가 google/llvm-propeller로 이동했습니다.

포함된 컬렉션

토픽

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

자주 묻는 질문

autofdo은(는) 무엇인가요?
Linux perf의 샘플링 하드웨어 프로파일을 사용해 컴파일된 바이너리를 개선하는 프로파일 기반 최적화 워크플로인 AutoFDO용 툴체인입니다. AutoFDO는 자동 피드백 기반 최적화를 위한 도구 모음입니다. 프로그램에 계측 코드를 삽입하는 대신 Linux perf를 사용해 하드웨어 성능 카운터에서 실행 프로파일을 샘플링하고, 이를 컴파일러가 읽을 수 있는 프로파일로 변환한 다음 컴파일러에 다시 전달해 최적화 결정을 유도합니다.
autofdo은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
autofdo은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
autofdo은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. autofdo의 마지막 커밋은 2026년 9월 30일입니다.
autofdo은(는) 어디에 사용할 수 있나요?
실제 워크로드 프로파일을 사용해 운영 환경의 C++ 바이너리 런타임 성능을 개선합니다. Linux 서버의 LLVM 기반 컴파일러 파이프라인용 AutoFDO 도구를 빌드합니다. 소스 코드를 변경하지 않고 프로파일 기반 최적화를 시험합니다.
autofdo는 어떻게 설치하나요?
Ubuntu 20.04 또는 22.04에 필수 구성 요소를 설치합니다: sudo apt install libunwind-dev libgflags-dev libssl-dev libelf-dev protobuf-compiler cmake libzstd-dev clang g++ 서브모듈을 포함해 저장소를 클론합니다: git clone --recursive --depth 1 https://github.com/google/autofdo.git 빌드 디렉터리를 만들고 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 ../ autofdo 도구를 빌드합니다: cmake -DENABLE_TOOL=GCOV -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=On ../ && make -j 4
autofdo은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/google/autofdo

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

LLVM을 사용해 수치 연산용 Python 함수를 빠른 머신 코드로 변환하는 NumPy 지원 오픈소스 JIT 컴파일러입니다.

1.1만+3 이번 주1.4천PythonBSD-2-Clause활발히 관리됨업데이트 어제

LLVM 기반 Go 컴파일러로, Go 코드에서 C 라이브러리를 직접 호출하고 Python 라이브러리를 가져올 수 있습니다.

개발 도구#compiler#llvm#go
850+2 이번 주58GoApache-2.0업데이트 10시간 전