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
Ubuntu 20.04 또는 22.04에 필수 구성 요소를 설치합니다
sudo apt install libunwind-dev libgflags-dev libssl-dev libelf-dev protobuf-compiler cmake libzstd-dev clang g++ - 2
서브모듈을 포함해 저장소를 클론합니다
git clone --recursive --depth 1 https://github.com/google/autofdo.git - 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
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로 이동했습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- 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 통계는 매일 갱신됩니다.
관련 프로젝트
기존 코드를 거의 수정하지 않거나 전혀 수정하지 않고 컴파일하며, 메모리 오류를 패닉으로 처리하는 메모리 안전 C 및 C++ 구현입니다.
LLVM 코어, Clang C/C++ 프런트엔드, libc++ 및 LLD 링커를 포함하는 모듈형 컴파일러·툴체인 기술 모음입니다.
C와 C++ 코드를 WebAssembly로 컴파일해 브라우저, Node.js 및 기타 Wasm 런타임에서 실행할 수 있게 하는 컴파일러 툴체인입니다.
LLVM 기반 Go 컴파일러로, 마이크로컨트롤러, WebAssembly(WASM/WASI), 명령줄 도구를 대상으로 합니다.