author : cedric augonnet, samuel thibault, and raymond namyst inria bordeaux, labri, university of...
DESCRIPTION
Multi-core architectures featuring specialized accelerator ◦ Those are getting an increasing amount of attention. ◦ This success will probably influence the design of future High Performance Computing hardware. Homogeneous multi-core system → Heterogeneous multi-core system Static prediction → Dynamic predictionTRANSCRIPT
Automatic Calibration of Performance Models on Heterogeneous Multi-core ArchitecturesAuthor : Cedric Augonnet, Samuel Thibault, and Raymond NamystINRIA Bordeaux, LaBRI, University of BordeauxWorkshop on Highly Parallel Processing on a Chip (HPPC 2009)
1) Introduction2) What is StarPU ?3) How to define and to build performance
models ?4) Build history-based performance models
dynamically5) Experimental validation 6) Conclusion
outline
Multi-core architectures featuring specialized accelerator◦ Those are getting an increasing amount of
attention.◦ This success will probably influence the design of
future High Performance Computing hardware.
Homogeneous multi-core system → Heterogeneous multi-core system
Static prediction → Dynamic prediction
Introduction
Auto-tuning performance prediction approach ◦ based on performance history tables dynamically
built during the application run.
Introduction (cont.)
A runtime system for task scheduling on heterogeneous multi-core architecture.
The design of StarPU is organized around three main components:◦ An unified execution model.◦ A data management library. ◦ A scheduling framework.
What is StarPU ?
Scheduling strategies based on performance models
Define performance model :
◦ We need to decide which parameters the model should depend on.
◦ Find relationship between these parameters.
How to define and to build performance models ?
Build performance model :◦ It is common to use specific pre-calibration program
to build those model.
◦ It is however possible to design a model based on the amount of computations per task, and to calibrate the parameters by the means of a regression.
◦ StarPU can therefore automatically calibrate parametric models, either at runtime using linear regression models or offline in the case of non-linear models.
How to define and to build performance models ? (cont.)
Regression analysis will be create a model of dependent variable and independent variable.
In the model, we can be prediction value of dependent variable by independent variable.
General cases are linear regression and non-linear regression
Regression analysis
Measuring tasks' duration.
Identifying task kinds.
Feeding and looking up from the model.
Build history-based performance models dynamically
Identifying task kinds.
Each computational kernel is associated with a hash table per architecture.
Steps :1. A task is submitted to StarPU2. It computes its hash.3. Consults the hash table corresponding to the
proper kernel-architecture pair to retrieve the average execution time previously measured for this kind of task.
4. Update hash table, and save the new hash table to a file. (These performance models are persistent between different runs.)
Feeding and looking up from the model.
Environment :◦ They have implemented these automatic model
calibration mechanisms in StarPU .
◦ Multi-core CPU, GPU, Cell processor(SPU)
Experimental validation
Sharpness of the performance prediction
Performance feedback tools
We have proposed a generic approach to seamlessly build history-based performance models.
It has been implemented within the StarPU runtime system with the support of its integrated data management library, and we have shown how StarPU's performance feedback tools help the programmer to analyze whether the resulting performance prediction are relevant or not.
Conclusion
Q & A