Dynamic voltage/frequency scaling in GPUs through genetic algorithm
Dynamic Voltage/Frequency Scaling (DVFS) is the primary approach to optimizing Central Processing Units (CPUs) power consumption. A handful of approaches are conducted using this technique in General Purpose Graphics Processing Units (GPGPUs). However, due to the massively parallel execution of threads on GPUs and load imbalance on Streaming Multiprocessors (SMs), finding the best global frequency for GPU cores is not a simple task. Moreover, the proposed approaches in the literature mostly rely on an offline model, where the optimal voltage and frequency for an application is found to be used in the next execution. In this work, we use a combination of an analytical model and a genetic algorithm to adjust per SM frequency dynamically, aiming at decreasing GPU’s power consumption with the least amount of performance loss without a need for offline execution. We tested our approach using 16 GPU kernels from different domains with ranging features. Our results show that we can save 9.6% of GPU’s total energy on average with less than 0.95% performance loss. We also discuss further improvements and possible extensions to the proposed approach.