Thumbnail Image

Power modeling and architectural techniques for energy-efficient GPUs

Lal, Sohan

Graphics Processing Units (GPUs) have evolved from fixed function graphics processors to programmable general-purpose compute accelerators in a short time. The high theoretical performance and energy efficiency of GPUs compared to CPUs have made them indispensable for mainstream computing. However, their high power consumption and limited energy efficiency under low utilization is a challenge that still needs to be tackled. This thesis investigates bottlenecks that cause low performance and low energy efficiency in GPUs and proposes architectural techniques to address them. To conduct energy efficiency research for GPUs, we first develop a flexible and accurate power simulator called GPUSimPow. We use a hybrid approach for power modeling that improves flexibility and accuracy compared to previous approaches. Our evaluation shows an average relative error of 11.7% and 10.8% between simulated and measured power for the NVIDIA GT240 and GTX580, respectively. We then use GPUSimPow to study the energy efficiency of a wide range of kernels and categorize them into high performance and low performance. We further investigate the bottlenecks of low-performance kernels by analyzing their occupancy. We quantify the gain in performance and energy efficiency when occupancy is increased. For instance, the average increase in instructions per cycle, the average reduction in energy consumption and energy-delay-product is 11%, 9%, and 23%, respectively, when occupancy is increased for a sub-category of low occupancy kernels. The full occupancy kernels have low performance despite having the maximum number of threads. Further investigation shows that several of these kernels are memory-bound and can gain significantly from an increase in memory bandwidth. The traditional ways of increasing memory bandwidth by widening interfaces and increasing frequency have issues such as high power consumption, large form factor, and difficulty in the scaling of pin count. Memory compression is a promising alternative to increase the effective memory bandwidth of GPUs, however, we find that the existing memory compression techniques for GPUs exploit simple patterns for compression and trade low compression ratios for low decompression latency. Based on the evidence that GPUs are less sensitive to latency than CPUs, we propose the more complex Entropy Encoding Based Memory Compression (E2MC) technique for GPUs. On average, E2MC delivers 53% higher compression ratio and 8% higher speedup than the state of the art. E2MC reduces energy consumption and energy-delay-product by 13% and 27%, respectively. While designing E 2 MC, we observe that lossless memory compression techniques including E2MC often have a low effective compression ratio due to the large memory access granularity (MAG) exhibited by GPUs. Our study of the distribution of compressed blocks reveals that a significant percentage of compressed blocks have only a few bytes above a multiple of MAG but a whole burst is fetched from memory. With the goal of reducing the compressed size by these extra bytes, we propose the novel MAG Aware Selective Lossy Compression (SLC) technique for GPUs which increases the effective compression ratio and drives the performance and energy efficiency further. For a lossy threshold of 16B and 32B MAG, SLC provides a speedup of up to 17% on top of E 2 MC with a maximum error of 0.64%. SLC reduces energy consumption and energy-delay-product by 8.4% and 18.2%, respectively.
Grafikprozessoren (graphics processing units, GPUs) haben sich innerhalb relativ kurzer Zeit von auf Ausgabe spezialisierten Einheiten zu programmierbaren Universalbeschleunigern entwickelt. Durch die hohe theoretische Leistung und Energieeffizienz von GPUs im Gegensatz zu CPUs wurden GPUs unverzichtbar für heutige Rechenzentren. Allerdings ist die hohe Leistungsaufnahme und schlechte Energieeffizienz unter geringer Auslastung eine Herausforderung, die es noch zu meistern gilt. Diese Arbeit untersucht die Engpässe, die für eine geringe Leistung und für die geringe Energieeffizienz verantwortlich sind und schlägt Lösungen vor, die auf einer verbesserten Hardwarearchitektur basieren. Um die Energieeffizienz von GPUs zu untersuchen, entwickeln wir zuerst einen flexiblen und genauen elektrischen Leistungssimulator GPUSimPow. Wir verwenden einen hybriden Ansatz für die Modellierung der Leistung, derdie Flexibilität und Genauigkeit im Vergleich zu bisherigen Ansätzen verbessert. Unsere Untersuchung zeigt einen durchschnittlichen relativen Fehler zwischen 11,7% und 10,8% zwischen der simulierten und der gemessenen Leistungsaufnahme einer NVIDIA GT240 und einer GTX580. Wir benutzen den Simulator um die Energieeffizienz einer Vielzahl von Kerneln zu untersuchen. Dabei kategorisieren wir die Kernel in hoch-performante Kernel und Kernel mit geringer Leistung. Außerdem untersuchen wir die Engpässe der Kernel mit geringer Leistung und teilen sie in die Gruppen geringe Auslastung und volle Auslastung. Wir quantifizieren den Zugewinn an Rechenleistung und Energieeffizienz bei einer Erhöhung der Auslastung. Beispielsweise ist die durchschnittliche Erhöhung der Zyklen pro Instruktion, die durchschnittliche Verringerung der Leistungsaufnahme und das Energy-delay-product bei voller Auslastung jeweils 11%, 9% und 23%, wenn die Auslastung für die Gruppe der Kernel mit geringer Auslastung erhöht wird. Die Kernel mit hoher Auslastung haben eine geringe Leistung, obwohl sie die maximale Anzahl von Threads ausführen. Weitere Untersuchen zeigen, dass einige dieser Kernel durch die Speicherbandbreite begrenzt werden (memory-bound) und durch eine Erhöhung der Speicherbandbreite signifikant beschleunigt werden können. Traditionelle Techniken zur Vergrößerung der Speicherbandbreite etwa durch breitere Schnittstellen und höhere Taktraten haben Nachteile wie zum Beispiel hohe Leistungsaufnahme, große Bauweise und Probleme bei der Erhöhung der Anzahl der elektrischen Kontakte. Speicherkompression ist ein vielversprechender Ansatz die effektive Speicherbandbreite zu erhöhen. Allerdings stellen wir fest, dass bestehende Speicherkompressionstechniken für GPUs einfache Muster zur Kompression ausnutzen und bei der Dekompression niedrigere Kompressionsraten zum Erreichen geringer Verzögerungen in Kauf nehmen. Basierend auf der Tatsache, dass GPUs weniger als CPUs von einer höheren Latenz beeinflusst werden, schlagen wir das verbesserte Verfahren Entropy Encoding Based Memory Compression (E2MC) für GPUs vor. Dieses Verfahren erreicht durchschnittlich eine 53% höhere Kompressionsrate und 8% höhere Leistung als die modernsten Techniken. E2MC reduziert die Energieaufnahme um 13% und das Energy-delay-product um 27%. Allerdings zeigt sich, dass die verlustfreie Kompression in vielen Fällen zu einer geringen effektiven Kompressionsrate führt, da die Granularität der Speicherzugriffe (Memory Access Granularity, MAG) auf GPUs groß ist. Unsere Untersuchung der Verteilung der komprimierten Blöcke zeigt, dass ein signifikanter Anteil der komprimierten Blöcke eine Größe haben, sodass ein paar Bytes mehr als die MAG geladen werden müssen und dadurch trotzdem eine Speichertransaktion ausgeführt wird. Mit dem Ziel die Größe der komprimierten Blocks um diese extra Bytes zu reduzieren, schlagen wir unseren neuartigen Ansatz MAG Aware Selective Lossy Compression (SLC) vor. Damit erhöhen wir die effektive Kompressionsrate und verbessern damit die Leistung und Energieeffizienz weiter. Für eine Schwelle von 16B und 32B MAG kann mit SLC eine Beschleunigung von 17% im Vergleich zu modernsten erlustfreien Ansätzen erreicht werden, während der Fehler nur 0,64% beträgt. SLC reduziert die Energieaufnahme um 8,4% und das Energy-delay-product um 18,2%.