Download presentation
Presentation is loading. Please wait.
Published bySheena Curtis Modified 6년 전
1
An Intra-Task DVFS Technique based on Statistical Analysis of Hardware Events
순천향대학교 컴퓨터학부 윤희성
2
ABSTRACT 통계적 분석에 기반한 DVFS 기법 제안
기존 논문은 지식-기반 방식으로 컴퓨터 동작을 정성적(qualitatively) 분석, 동적 최적화 모델 생성 제안하는 방식은 하드웨어 이벤트들의 정량적인 데이터에서 동작을 분석, 통계적인 모델 생성 프로그램의 실행 단계(phase)와 같은 정적 정보와 성능 카운터의 동적 정보를 이용하는 혼합 기법 성능과 성능 카운터 간의 관계는 통계적으로 미리 학습됨 컴파일러는 성능을 예측하고 예측된 성능에 따라 주파수/ 전압을 설정하는 런-타임 코드를 삽입 소프트 타이밍 제약을 만족하면서 에너지 소모를 크게 줄임
3
INTRODUCTION 프로그램 실행 시 적용되는 동적 최적화의 필요성이 증대됨
정적 최적화에 비해 서로 다른 데이터 세트의 크기, 하드웨어 환경 등에 기인한 동적 동작들에 더 잘 적응하는 장점을 가짐 ex) 주파수/전압 스케일링, 캐시나 명령 큐 등에 적합한 크기의 구조 선택, SMT(simultaneous multithreading) 프로세서나 CMP(chip multi-processors) 상에서 수행되는 쓰레드의 수 등이 있음 OS, 하드웨어 기반 기법들은 런-타임 정보들을 활용하여 캐시 미스, 분기예측 미스 등과 같은 프로그램 실행 시 발생하는 동적 동작에 응답 실행단계의 변화와 같이 프로그램의 소스 코드로부터 얻어지는 정보를 사용할 수 없는 단점을 가짐
4
INTRODUCTION 컴파일러 기반 기법들은 프로파일링 결과들을 사용, 오프-라인에서 프로그램의 동작을 분석
프로파일링과 다른 데이터 세트 크기, 하드웨어 등 다른 런-타임 환경 적용 시 적절한 최적화를 제공하지 못함 모든 최적화는 최적화 적용시점과 방법을 결정하기 위해 타겟 프로세서의 동작을 모델링해야 함 하지만 최근 프로세서들은 비순차 실행의 깊은 파이프라인, 복잡한 분기예측기의 슈퍼 스칼라로 설계되고 있음 또한 단일 칩 상에서 리소스를 공유하는 여러 쓰레드를 실행할 수 있는 SMT나 멀티-레벨 캐시 구조의 CMP가 보편화되고 있음 프로세서의 동작을 정성적으로 파악하는 것이 어려워짐
5
INTRODUCTION 제안된 통계적 방식은 Intel Pentium M, AMP Opteron, AMD Turion 프로세서 상에서 DVFS 적용기법을 개발함 성능 카운터로 구해진 동적 정보를 이용하여 주파수/전압이 변경될 때 프로세서의 성능을 온-라인 상에서 예측, 에너지 소모를 줄이는 방법 제안 성능과 성능카운터 정보 사이의 관계를 미리 통계적으로 학습하여 성능을 예측하는 수학적인 표현 설계 세 프로세서에 적용한 결과 쉽과 적용 가능하고, 좋은 결과를 보였다.
6
METHOD Multiple Regression Analysis
독립변수의 값들로부터 종속변수의 변화의 예측을 위해 널리 사용되는 통계분석 제안된 모델은 성능이 종속변수, 성능 카운터 값이 독립변수가 됨 독립변수가 2개 이상인 경우 다중 회귀분석을 실시 Y는 예측된 성능, X는 성능 카운터 값, b는 회귀계수
7
METHOD DVFS Technique Based on Statistical Analysis
8
METHOD 학습 프로그램을 실행하여 성능과 성능카운터 값 수집
수집된 데이터를 사용하여 회귀분석 모델을 생성, 각기 다른 주파수에서 성능을 예측할 수 있는 수학적인 표현을 구함 또한 가장 높은 기여율(상관관계 요인)을 갖는 카운터들을 선택 통계적인 학습의 결과가 라이브러리로 저장되고, 컴파일러는 타겟 응용의 소스코드의 성능카운터로부터 성능을 예측하도록 라이브러리 호출 삽입 예측된 성능에 따라 주파수/전압을 변경하는 런-타임 코드를 삽입 마지막으로 온-라인으로 서로 다른 주파수/전압에 대해 성능을 예측하고, 주어진 소프트 타이밍 제약에 따라 DVFS 적용
9
METHOD Performance Predicting Model
AMD Turion 프로세서에서 여러 개의 phase의 각 주파수에서 최대 주파수에 대한 성능비율을 보여줌 일부 성능 카운터는 선형, 일부는 log model이 더 높은 정확도를 보이기 Eans에 위의 식과 같은 log-based linear regression model을 사용하여 성능 예측
10
METHOD Run-time Code Insertion by the Compiler
컴파일러가 타겟 소스코드를 분석, 루프나 함수 등과 같이 반복될 가능성이 높은 “phase”를 찾음 그 뒤 성능 카운터를 사용해 성능을 예측, 주파수를 변경하는 런-타임 코드를 라이브러리에 삽입
11
METHOD “phase”에 삽입되는 런-타임 코드의 개략임
함수 set_freq()는 주파수를 설정하고, 라이브러리 호출 start_perf_counter()는 성능 카운터를 리셋시킴 이 코드는 phasei 직전에 삽입됨 Freq_phasei는 이전에 설정된 주파수이고 초기값은 최대 주파수임 Phasei 수행 후 성능 카운터를 측정하는 end_perf_counter() 함수가 호출되고 클럭은 최대 주파수로 설정됨 Phase가 아닌 다음 코드를 성능 저하 없이 최대 성능으로 수행시키기 위함 함수 estimate_perf_raito()는 통계적 학습으로 구해진 회귀식에 측정된 성능 카운터를 대입하여 최대 주파수에 대한 성능비율을 예측하는 함수임 프로세서가 유지해야 되는 최소 성능을 나타내는 성능비율 임계값은 Pthrehold로 표시됨 Pthrehold를 초과하는 최소의 주파수가 다음 실행 주파수
12
EVALUATION Evaluation Environment
표 1과 같은 프로세서의 실제 PC에서 실험 수행하고 표 2는 각 프로세서의 클럭주파수/공급전압 관계를 보여줌 Pentium M은 33개의 성능카운터, 동시측정 2개 가능 Opteron과 Turion은 29개의 성능카운터, 동시측정 4개 가능 Linux 상에서 PAPI를 사용하여 성능카운터 측정
13
EVALUATION Learning Programs and Evaluation
통계적 학습을 위해 SPEC CPU2000의 9개의 정수 프로그램(gzip, vpr, gcc, mcf, gap, vortex, bzip2, twolf)로부터 phase로 지정될 만큼 긴 함수들을 선정함 Phase는 오프라인으로 GNU prof를 사용한 프로파일링 데이터를 이용, 수작업으로 선정 다양한 종류의 입력 데이터 크기를 커버하도록 (ref, train, test) 데이터 세트를 사용 또한 학습을 위해 다양한 크기(행렬 크기, 벡터 길이)의 데이터를 갖는 행렬곱과 벡터곱 프로그램도 사용 300개의 phase로부터 성능카운터 값을 측정하고 통계적으로 학습됨
14
EVALUATION 제안된 DVFS 방식의 평가를 위해 SPEC CPU2000 정수에서 mcf, bzip2, SEPC CPU2000 실수에서 swim, mgrid (ref 입력 사용), 행렬곱 프로그램 선정 통계학습을 위해 leave-one-out 방식을 사용 성능비율 임계값으로 Pthrehold = 1.0, 0.9, 0.8, 0.5를 적용 성능카운터를 수집하는 라이브러리 함수 호출 추가는 1% 미만으로 성능에 영향을 주어 크지 않음
15
EVALUATION RESULTS Statistical Learning Results
표 3은 각 프로세서의 선택된 성능카운터와 기여율을 나타냄
16
Evaluation Results 그림 4는 각 프로세서의 DVFS 적용 결과 최대 주파수 성능 대비 비율을 보여줌
점선은 임계값을 나타냄
17
EVALUATION RESULTS 그림 5는 각 프로세서에서 선택된 주파수의 분포를 보여줌
막대 바의 임계값은 0.9, 0.8, 0.5 순으로 표시됨
18
EVALUATION RESULTS 표 4, 5, 6은 상대적인 에너지 소모값을 보여줌
실측 값이 아닌 그림 5의 주파수 분포와 공급전압과의 관계를 분석하여 계산됨 임계값이 0.9인 경우 Pentium M은 12%, Opteron은 6%, Turion은 9% 에너지가 감소하고 0.5인 경우 각각 35%, 27%, 31% 감소
19
EVALUATION RESULTS
20
CONCLUSION 통계적인 분석에 근거한 DVFS 기법 제안
성능과 성능카운터와의 관계를 통계적으로 미리 학습, 컴파일러가 성능을 예측하고, 예측된 성능에 따라 주파수/ 전압을 설정하는 런-타임 코드를 삽입 삽입된 코드는 예측된 성능에 따라 성능비율을 만족하는 낮은 주파수를 선택함 세 하드웨어 플랫폼에 적용한 결과 조건을 만족하면서 에너지 소모를 감소시킴 향후 더 나은 통계 학습방법을 개발하고, 다른 형태의 동적 최적화, 분석이 어려운 동작에 적용할 예정
21
Questions ? Please contact : 윤 희 성 순천향대학교 컴퓨터공학부 멀티미디어관 M611
Similar presentations