Skip to main content
QUICK REVIEW

[논문 리뷰] Compiler Phase Ordering as an Orthogonal Approach for Reducing Energy Consumption

Ricardo Nobre, Luís Reis|arXiv (Cornell University)|2018. 07. 02.
Parallel Computing and Optimization Techniques참고 문헌 15인용 수 10
한 줄 요약

이 논문은 에너지 소비를 줄이기 위해 컴파일러 단계 순서를 성능 외적 최적화 차원으로 제안하며, 에너지 최적화된 단계 순서를 생성하기 위해 그래프 기반 모델을 사용한다. ARM 및 x86 플랫폼에서의 실험 결과, 성능 향상 없이도 최대 24%의 에너지 절감을 확인하였으며, 이는 성능 최적화 컴파일러 플래그(예: -O3)가 항상 가장 에너지 효율적인 코드를 생성하지는 않음을 보여준다.

ABSTRACT

Compiler writers typically focus primarily on the performance of the generated program binaries when selecting the passes and the order in which they are applied in the standard optimization levels, such as GCC -O3. In some domains, such as embedded systems and High-Performance Computing (HPC), it might be sometimes acceptable to slowdown computations if the energy consumed can be significantly decreased. Embedded systems often rely on a battery and besides energy also have power dissipation limitations, while HPC centers have a growing concern with electricity and cooling costs. Relying on power policies to apply frequency/voltage scaling and/or change the CPU to idle states (e.g., alternate between power levels in bursts) as the main method to reduce energy leaves potential for improvement using other orthogonal approaches. In this work we evaluate the impact of compiler pass sequences specialization (also known as compiler phase ordering) as a means to reduce the energy consumed by a set of programs/functions when comparing with the use of the standard compiler phase orders provided by, e.g., -OX flags. We use our phase selection and ordering framework to explore the design space in the context of a Clang+LLVM compiler targeting a multicore ARM processor in an ODROID board and a dual x86 desktop representative of a node in a Supercomputing center. Our experiments with a set of representative kernels show that there we can reduce energy consumption by up to 24% and that some of these improvements can only be partially explained by improvements to execution time. The experiments show cases where applications that run faster consume more energy. Additionally, we make an effort to characterize the compiler sequence exploration space in terms of their impact on performance and energy.

연구 동기 및 목표

  • 성능 외적 최적화 차원으로서 컴파일러 단계 순서를 탐색하여 에너지 효율적 컴파일링의 격차를 메우기.
  • 표준 최적화 수준(예: -O3)보다 맞춤형 컴파일러 단계 순서가 에너지 소비를 더 효과적으로 줄일 수 있는지 조사하기.
  • 성능 및 에너지 소비에 대한 영향을 기반으로 컴파일러 단계 순서의 설계 공간을 특성화하기.
  • 특정 함수 및 타겟 아키텍처에 맞춘 에너지 최적화된 컴파일러 순서를 생성하기 위한 그래프 기반 프레임워크 개발 및 평가하기.
  • 동적 전력 관리 하에서 에너지 효율성과 성능이 완벽하게 상관되지 않음을 입증하기.

제안 방법

  • 이전에 최적화된 순서에서 수집한 통계 데이터를 기반으로 훈련된 그래프 모델을 사용해 에너지 효율적인 컴파일러 단계 순서를 표현한다.
  • ARM(ODROID XU+E) 및 x86(더블 Xeon) 플랫폼을 대상으로 한 Clang+LLVM 컴파일러 내에서 단계 선택 및 순서 정렬 프레임워크를 구현한다.
  • 12개의 PolyBench/C 커널에 대해 여러 OpenMP 스레드 구성에서 실행 시간, 에너지 소비 및 전력 소비를 측정한다.
  • 맞춤형 단계 순서의 에너지 소비를 표준 컴파일러 플래그(-O1에서 -O3까지) 및 기본 순서와 비교한다.
  • 단일 프로그램을 제외한 나머지 프로그램을 대상으로 한 유사도 검증 방법(leave-one-out)을 통해 단계 순서 탐색 과정의 효과성과 확장성을 평가한다.
  • 탐색 공간을 줄이기 위해 지문 분석(fingerprinting) 및 클러스터링 기법을 사용하여 컴파일러 단계 순서의 탐색 효율성을 향상시킨다.

실험 결과

연구 질문

  • RQ1표준 최적화 수준(예: -O3)을 초월해 컴파일러 단계 순서를 에너지 소비 감소의 외적 최적화 수단으로 사용할 수 있는가?
  • RQ2성능 최적화 컴파일러 플래그(예: -O3)가 얼마나 에너지 최적화된 바이너리로 이어지는가? 어디서 부족한가?
  • RQ3성능 저하가 발생할 경우, 맞춤형 단계 순서는 실행 시간에 비해 에너지 소비에 어떤 영향을 미치는가?
  • RQ4다른 CPU 아키텍처(ARM 대비 x86)와 전력 관리 정책은 단계 순서의 효과성에 어떤 영향을 미치는가?
  • RQ5역사적 최적화 데이터를 기반으로 훈련된 그래프 기반 모델이 에너지 효율적인 단계 순서를 효과적으로 예측할 수 있는가?

주요 결과

  • 컴파일러 단계 순서를 통해 표준 -O3 최적화 수준 대비 최대 24%의 에너지 소비 감소를 달성할 수 있으며, 이는 성능 향상 없이도 가능하다.
  • -O3에서 더 빠르게 실행되는 일부 프로그램은 더 많은 에너지를 소비함으로써, 성능과 에너지 효율성이 완벽하게 상관되지 않음을 입증한다.
  • 맞춤형 단계 순서로 얻는 에너지 절감은 실행 시간 향상으로만 설명될 수 없으며, 메모리 액세스 및 전력 상태 전환과 같은 다른 요소가 핵심 역할을 함을 시사한다.
  • 그래프 기반 단계 순서 생성 프레임워크는 기존 유전 알고리즘과 비교해 탐색 속도를 약 10배 향상시킨다.
  • 이 방법은 다양한 플랫폼에서 효과적이며, ARM 기반 임베디드 시스템과 x86 기반 HPC 워크스테이션 양쪽 모두에서 뚜렷한 에너지 절감 효과를 보였다.
  • 클러스터링 기반의 단계 순서 공간 정제는 기존 유전 알고리즘 기반 기준 대비 탐색 시간을 18배 단축시키며, 이전 연구에서는 43%의 성능 향상을 달성했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.