Home | deutsch  | Legals | Data Protection | KIT

Analysis and Optimization of Dynamic Voltage and Frequency Scaling for AVX Workloads Using a Software-Based Reimplementation

Analysis and Optimization of Dynamic Voltage and Frequency Scaling for AVX Workloads Using a Software-Based Reimplementation
Type:Bachelor Thesis
Date:02.09.2019
Supervisor:

Prof. Dr. Frank Bellosa
Mathias Gottschlag

Graduand:Yussuf Khalil
Links:PDF

While using the Advanced Vector Extensions (AVX) on current Intel x86 processors allows for great performance improvements in programs that can be parallelized by using vectorization, many heterogeneous workloads that use both vector and scalar instructions expose degraded throughput when making use of AVX2 or AVX-512. This eect is caused by processor frequency reductions that are required to maintain system stability while executing AVX code. Due to the delays incurred by frequency switches, reduced clock speeds are attained for some additional time after the last demanding instruction has retired, causing code in scalar phases directly following AVX phases to be executed at a slower rate than theoretically possible.
We present an analysis of the precise frequency switching behavior of an Intel Syklake (Server) CPU when AVX instructions are used. Based on the obtained results, we propose avxfreq, a software reimplementation of the AVX frequency selection mechanism. avxfreq is designed to enable us to devise and evaluate alternative algorithms that govern the processor’s frequency smarter with regard to workloads that mix both AVX and scalar instructions. Using an oracle mechanism built atop avxfreq, we show that the performance of scalar phases in heterogeneous workloads can theoretically be improved by up to 15 % with more intelligent reclocking  mechanisms.

BibTex:

@bachelorthesis{khalil19avxworkloads,
  author = {Yussuf Khalil},
  title = {Analysis and Optimization of Dynamic Voltage and Frequency Scaling for AVX Workloads Using a Software-Based Reimplementation},
  type = {Bachelor Thesis},
  year = 2019,
  month = sept # "02",
  school = {Operating Systems Group, Karlsruhe Institute of Technology (KIT), Germany}
  }