Bookshelf

Training artificial neural networks on GPUs is time and energy-intensive [52][48]. Modern state-of-the-art networks in 2019 had hundreds of millions of parameters, while most networks in 2020 had multiple billions of parameters [8]. It is estimated that training such networks costs around 1$ per 1000 parameters. Reducing the energy for training by just ten percent could potentially save millions of dollars and reduce the environmental impact. The focus of this thesis is to reduce the energy consumption during the training of deep neural networks. The necessary tooling was built to collect GPU energy data. Models, which can predict the impact of power limits on energy consumption, runtime, and energy delay product (EDP), have been developed. The framework for running energy experiments allows collecting power measurements from different sources, such as GPU driver and external measurements. The presented tool gpyjoules integrates into Keras , which is a highlevel abstraction layer for the deep learning framework TensorFlow . It allows to analyze the energy consumption of deep learning applications, written in Keras, without the need to modify the existing code. Five different benchmarks — four deep neural networks and one scientific simulation — have been run on three different Nvidia GPUs: V 100 , T 4, and K 80. The data collected from these experiments was used to build and validate models which can predict energy and EDP based on a given power limit. All models have been validated using leave one out cross-validation. Model and data show that the optimal power limit to reduce the energy consumption is usually the lowest available power limit (150 W V100 ), (60 W T4), (125 W K80). At best, a 30 % energy reduction is possible on the V100 . Around eight percent can be saved on T4 and K 80. The EDP can be reduced by almost 14 % on the V 100 . No reductions are possible on the K 80. The data collected on the T4 is ambiguous, the EDP might be reduced for some workloads. Energy and EDP optima depend mainly on the utilization that a workload creates on the given GPU. The comparison of the three GPUs showed that the newer ones (T 4 and V 100 ) trained the networks in less time, while also using less energy. The T4 GPU was not more efficient than the V 100 at the lowest power limit but took roughly twice as long as the V 100 to execute the benchmarks, even at the lowest power limit. Modern high-end server GPUs, which were purposely built to train deep neural networks, can be optimized using power limits, in order to be as efficient as low power devices built for inference (such as the T4 ). They outperform older models and low power devices in terms of speed and EDP by several orders of magnitude.

Das Trainieren künstlicher neuronaler Netze auf GPUs ist zeit- und energieintensiv [ 52 ][ 48 ]. Moderne Netze, die dem Stand der Kunst in 2019 entsprachen, hatten hunderte Millionen Parameter, Netze in 2020 hatten bereits mehrere Milliarden Parameter [ 8 ]. Es wird geschätzt, dass das Trainieren von Netzen dieser Größenordnung ca. 1 $ pro 1000 Parameter kostet. Mit einer Energieeinsparung von zehn Prozent ließen sich Millionen Dollar sparen und Umweltschäden verringern. Das Ziel dieser Arbeit ist die Einsparung von Energie während des Trainierens künstlicher, tiefer neuronaler Netze. Ein Framework wurde gebaut um Energiemessungen auf Grafikkarten (GPUs) durchzuführen. Mit den gesammelten Daten wurden Modelle trainiert, die den Energieverbrauch, die Ausführungsdauer und das Energy Delay Product (EDP) vorhersagen können. Das vorgestelle Werkzeug namens gpyjoules integriert sich in Keras , welches eine Abstraktionsschicht für das Deep Learning Framework TensorFlow darstellt. Mit dem Werkzeug lässt sich der Energieverbrauch von in Keras entwickelten Deep Learning Anwendungen analysieren, ohne dass dafür Veränderungen am Quellcode, der das Netzwerk trainiert, notwendig sind. Fünf unterschiedliche Benchmarks – vier davon neuronale Netze und eine numerische Simulation – wurden untersucht. Dazu wurden die Benchmarks auf drei verschiedenen Grafikkarten der Firma Nvidia (V 100 , T 4 und K 80 ) ausgeführt. Die bei diesen Experimenten gesammelten Daten wurden genutzt, um die Modelle für Energie, Ausführungsdauer und EDP zu bauen und validieren. Die Validation der Modelle erfolgte mittels Leave-OneOut-Kreuzvalidierung. Die Analyse von Modellen und Daten zeigt, dass die optimale Leistungsgrenze in der Regel die kleinstmögliche ist. Für die V 100 150 W , für die T 4 60 W und 125 W für die K 80 . Auf der K 80 ist die optimale Leistungsgrenze etwas höher als die minimal mögliche von 100 W . Im besten Fall können auf der V 100 bis zu 30 % an Energie eingespart werden. Auf T 4 und K 80 können bis zu acht Prozent gespart werden. Das EDP kann auf der V 100 um ca. 14 % reduziert werden. Für die K 80 ist keine Reduktion möglich. Die Daten, die auf der T 4 Karte erhoben wurden, sind uneindeutig, eine geringe Einsparung könnte für manche Arbeitslasten möglich sein. Die Energie und EDP Optima hängen hauptsächlich von der durch die Arbeitslast verursachten Auslastung der Hardware ab. Ein Vergleich der drei Grafikkarten zeigt, dass die neueren (T 4 und V 100 ) die neuronalen Netze schneller trainieren und dabei weniger Energie benötigen. Die T 4 war dabei nicht effizienter als die V 100 , mit der niedrigsten Leistungsgrenze. Allerdings brauchte die T 4 etwa zweimal so lange wie die V 100 . Moderne High End Server Grafikkarten, welche zum Trainieren neuronaler Netze gebaut wurden, können mittels Leistungsgrenze so optimiert werden, dass sie so effizient wie Geräte mit niedrigerer Leistungsaufnahme sind. Die modernen GPUs sind dabei schneller, brauchen weniger Energie und haben ein niedrigeres EDP als ältere Hardware Generationen.

Titel On the Energy Consumption of Deep Learning Workloads
Verfasst von Felix Grzelka
Serien-Detail Masterarbeit
Verlag Hasso-Plattner-Institut an der Universität Potsdam
Datum 12. April 2021
Seitenzahl 65
Hinzugefügt am 13. April 2021
Hinzugefügt von felix.grzelka
Buch-Verleih verfügbar
PDF-Download Fachgebiets-Angehörige+ felix.grzelka