Inwieweit hat Multi-GPU Deep Learning eine stack'ende wirkung (Keras/Python)

Status
Für weitere Antworten geschlossen.

ObaeBaum

Cadet 3rd Year
Registriert
Juli 2020
Beiträge
59
Mittels einiger python Deep learning Libarys lassen sich mehrere GPUs gleichzeitig zum trainieren verwenden.
Mir kratzt seit langem der gedanke im Kopf ob es nicht sinnvoller ist 4x alte Nvidia Tesla K40 zu holen im Vergleich zu 2x 2070 oder einer einzelnen 2080 Ti.

Inwieweit lässt sich ihre Leistung im Deep Learning "stacken" (beim training eines einzelnen Models) ? Mich würden mal eure Erfahrungen/Schätzungen interessieren
 
Selbst wenn die Software zu 100% mit mehr GPUs skaliert wirst du mit 4x K40 keinen Hering vom Teller ziehen vs. 1x 2080Ti.
Kannst ja mal die reinen TFLOPS Werte vergleichen.

Da man mit 4x K40 außer so spezielle Anwendungen sonst quasi nichts im Privatumfeld anfangen kann würde ich hier eher zu einer 2080Ti greifen.

Zumal aufpassen, die meisten gebrauchten "billigen" Tesla GPUs auf Ebay und co. sind gerne die Server GPUs ohne Lüfter drauf, musst also noch nachrüsten und das sind dann gerne Karten die 3-5 Jahre 24/7 liefen.
 
Zusätzlich zu dem was @eRacoon schrieb muss beachtet werden, dass der Speicher je nach genutztem (Rechen-)Modell limitieren kann. Wenn man stark mit transformers arbeitet oder vollständig vernetzte NN hat, braucht man den Speicher auf einer einzelnen Karte und Parallelisieren hat entweder Nachteile (beschränkte Sequenzlänge bei transformers) oder geht prinzipbedingt nicht.

CNNs und RNNs im Allgemeinen lassen sich recht gut parallelisieren, aber wie @eRacoon schon schrieb: 4000 GFLOPS/SP bei einer K40 vs. 14 TFLOPS/SP bei einer 2080Ti ist eine recht klare Sache. Da ist der kleine Preisvorteil recht schnell durch die 3-4-fache Leistungsaufnahme ausgeglichen. Ganz davon ab ist man bei ganz grob gleicher rechnerischer Leistung praktisch in der Modellwahl eingeschränkt.

Und ein letzter Punkt: PCIe 3 x8 kann evtl. auch schon limitieren. D.h. mit einer 2080Ti spart man sich ggf. ein extrem teures Mainboard.

Eigentlich kann man fast alles unterhalb professioneller Anwendungen mit Google TPUs prototypen und auch umsetzen. Wenn man ernsthaft an Kaggle-Wettbewerben teilnehmen will, braucht man dann halt die 2080Ti, deren Nachfolger, oder muss sich die Rechenpower via Google TPUs kaufen.
 
  • Gefällt mir
Reaktionen: 0-8-15 User
Ich mache es so: Daheim nutze ich die GTX1060 6GB - Wenn ich mehr power brauche, bestelle ich mir fuer ein paat tage / stunden eine TPU / V100 in der Google cloud / AWS.

Es ist recht egal wie viel Geld du ausgibst, zuhause bekommst du einfach nicht die performance, die du haben willst und die auslastung ist alles andere als gut.

Deploy einfach den von dir genutzten setup in eine beliebige cloud und loesch den server sobald du ih nicht mehr brauchst wieder.
 
  • Gefällt mir
Reaktionen: 0-8-15 User
Ja sag mal, wie viel Threads zum Deep Learning willst du noch eröffnen?
Klär das alles in deinem ursprünglichen Thread.
lock.png
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben