2017-04-04 9 views
3

Wie die Frage schon sagt, bin ich neu im Deep Learning. Ich weiß, dass der Lernprozess des Modells ohne GPU langsam wird. Wenn ich bereit bin zu warten, wird es in Ordnung sein, wenn ich nur CPU verwende?Warum brauchen wir GPU für Deep Learning?

+3

natürlich wird es in Ordnung sein –

+0

Es wird in Ordnung sein, wenn Sie nicht Faltungen tun. GPUs helfen bei der Arbeit mit Image-Datasets, die Faltungslayer enthalten. Für Lernzwecke reicht eine CPU aus –

+0

@MihailBurduja GPUs werden für Deep Learning nicht benötigt. Sie beschleunigen die Dinge ziemlich (egal, ob Sie Faltungen verwenden oder einfache, dichte Schichten haben), aber er fragt nicht nach der Zeit. –

Antwort

6

Viele Operationen, die bei der Berechnung von Deep Learning (und neuralen Netzwerken im Allgemeinen) durchgeführt werden, können parallel ausgeführt werden, was bedeutet, dass sie unabhängig voneinander berechnet und später aggregiert werden können. Dies liegt zum Teil daran, dass die meisten Operationen auf Vektoren basieren.

Eine typische Consumer-CPU hat zwischen 4 und 8 Kerne, und Hyperthreading ermöglicht es, sie als 8 bzw. 16 zu behandeln. Server-CPUs können zwischen 4 und 24 Kernen mit jeweils 8 bis 48 Threads haben. Darüber hinaus verfügen die meisten modernen CPUs über SIMD (Single Instruction Multiple Data) -Erweiterungen, die es ihnen ermöglichen, Vektoroperationen parallel in einem einzigen Thread auszuführen. Abhängig von dem Datentyp, mit dem Sie arbeiten, kann eine 8-Kern-CPU 8 * 2 * 4 = 64 bis 8 * 2 * 8 = 128 Vektorberechnungen gleichzeitig ausführen.

Nvidias neuer 1080ti hat 3584 CUDA-Kerne, was im Wesentlichen bedeutet, dass 3584-Vektor-Berechnungen gleichzeitig ausgeführt werden können (Hyperthreading und SIMD spielen hier keine Rolle). Das sind 56 bis 28 Mal mehr Operationen als bei einer 8-Kern-CPU. Egal, ob Sie ein einzelnes Netzwerk trainieren oder ein Vielfaches, um Meta-Parameter zu optimieren, es wird wahrscheinlich auf einer GPU wesentlich schneller sein als auf einer CPU.

2

Je nachdem, was Sie tun, kann es viel länger dauern. Ich hatte 20x Beschleunigungen mit einer GPU. Wenn Sie Computer Vision-Dokumente lesen, trainieren Sie ihre Netzwerke auf ImageNet für ungefähr 1-2 Wochen. Jetzt stell dir vor, wenn das 20x länger brauchte ...

Nachdem das gesagt wurde: Es gibt viel einfachere Aufgaben. Zum Beispiel für meine HASY dataset können Sie ein vernünftiges Netzwerk ohne eine GPU in wahrscheinlich 3 Stunden trainieren. Ähnliche kleine Datensätze sind MNIST, CIFAR-10, CIFAR-100.

+0

Danke Martin, deine Antwort war auch hilfreich. Kannst du einige Computer Vision Papers nennen, in denen der Autor erzählt, dass sie ihr Netzwerk für 1-2 Wochen trainiert haben? – Kanu

+0

Das VGG-Netz Papier war 2-3 Wochen: https://arxiv.org/pdf/1409.1556.pdf –

1

Der rechenintensive Teil des neuronalen Netzwerks ist multiple Matrixmultiplikationen. Und wie machen wir es schneller? Wir können dies tun, indem wir alle Operationen gleichzeitig durchführen, anstatt sie nacheinander auszuführen. Dies ist in aller Kürze, warum wir GPU (Graphics Processing Units) anstelle einer CPU (Central Processing Unit) verwenden.

Früher hatte Google ein leistungsfähiges System, das speziell für das Training großer Netze entwickelt wurde. Dieses System kostet 5 Milliarden US-Dollar mit mehreren CPU-Gruppen. Wenige Jahre später bauten Forscher in Stanford das gleiche System in Bezug auf Berechnungen, um ihre tiefen Netze mit GPU zu trainieren. Sie reduzierten die Kosten auf 33.000 $. Dieses System wurde unter Verwendung von GPUs erstellt und lieferte die gleiche Verarbeitungsleistung wie das Google-System.

Quelle: https://www.analyticsvidhya.com/blog/2017/05/gpus-necessary-for-deep-learning/