Forum: Digitale Signalverarbeitung / DSP / Machine Learning Braucht Tensorflow-GPU einen starken CPU?


von ttom (Gast)


Lesenswert?

Guten Tag,
Ich würde gerne wissen ob eine schwache CPU einen GPU im Zusammenhang 
mit maschinellem Lernen drosselt?
Bei Computerspielen kann ein schwacher CPU ja dazu führen, dass das 
Potenzial einer stärken GPU nicht ausgeschöpft werden kann.
Ist dies bei AI Geschichten (Tensorflow, Torch, etc.) auch der Fall wenn 
die Neuronalen Netze o.ä. auf der GPU Version ausgeführt werden und die 
CPU bspw. Im Extremfall nur einen niedrigtaktenden Single Core hat?

Normal sollte dies ja nicht zu Problemen bzw Leistungseinbußen führen 
wenn wirklich ausschließlich auf der GPU gerechnet wird. Aber ist das 
auch so?

Ein weiteres Problem welches ich sehe, ist das "schwächere" bzw. ältere 
Prozessoren manche Prozessorinstruktionen wie AVX nicht unterstützen, 
wobei hierfür Lösung bestehen.

Leider konnte ich auf den Websiten der genannten Tools keine 
Informationen dazu finden.

Was meint Ihr dazu?
Danke.

: Verschoben durch Admin
von Frank K. (fchk)


Lesenswert?

ttom schrieb:

> Normal sollte dies ja nicht zu Problemen bzw Leistungseinbußen führen
> wenn wirklich ausschließlich auf der GPU gerechnet wird. Aber ist das
> auch so?

Nein, ist es nicht. Auf der GPU können nur Sachen effizient gerechnet 
werden, die im Sinne der Programmkomplexität sehr einfach, aber sehr gut 
parallelisierbar sind. Alles andere bleibt zwangsläufig auf der CPU, 
auch fast die gesamte Programmlogik. Die CPU muss dafür natürlich eine 
gewisse Mindestleistung haben.

Des weiteren geht es auch nicht unbedingt um die CPU-Kerne, sondern auch 
um das ganze Drumherum. Die Anbindung der GPU spielt eine Rolle, die 
Speicherbandbreite des Hauptspeichers, wie schnell Daten zwischen 
CPU-RAM und GPU-RAM hin- und herkopiert werden können, Geschwindigkeit 
des angeschlossenen Massenspeichers, etc etc. Ältere Systeme scheiden 
dann z.B. ganz einfach wegen langsamem Hauptspeicher oder 
PCIe-Gernaration älter als Gen3 aus.

Das gesamte System muss passen, es darf keinen Flaschenhals an einer 
entscheidenden Stelle geben.

So, und jetzt erzählst DU uns, was für ein KONKRETES Problem DU hast und 
weswegen DU diese Frage überhaupt stellst.

fchk

von nicht so (Gast)


Lesenswert?

ttom schrieb:
> Ich würde gerne wissen ob eine schwache CPU einen GPU im Zusammenhang
> mit maschinellem Lernen drosselt?

Ja.

ttom schrieb:
> Leider konnte ich auf den Websiten der genannten Tools keine
> Informationen dazu finden.

"Vorsicht! Unsere Software läuft auf langsamen Rechnern langsamer als 
auf schnellen!"

Oder wie hast du dir das vorgestellt?

von ttom (Gast)


Lesenswert?

Viele Dank für diese Antwort.

Ich habe mich gefragt ob man diverse GPU lastige Prozesse nicht 
kostengünstig auslagern könnte indem man eben ein System mit älterer 
Hardware aufbaut und nur die Grafikkarte neueren Jahrgangs einbaut. 
Falls das funktioniert wäre das natürlich bei weitem günstiger als ein 
komplettes System aufzubauen. Falls besagte Tools wirklich nur auf der 
GPU und dem GPU Speicher  laufen würden wäre dies ja kein Problem 
gewesen. Scheint aber nicht der Fall zu sein. Schade.

von ttom (Gast)


Lesenswert?

nicht so schrieb:
> ttom schrieb:
> Ich würde gerne wissen ob eine schwache CPU einen GPU im Zusammenhang
> mit maschinellem Lernen drosselt?
>
> Ja.
>
> ttom schrieb:
> Leider konnte ich auf den Websiten der genannten Tools keine
> Informationen dazu finden.
>
> "Vorsicht! Unsere Software läuft auf langsamen Rechnern langsamer als
> auf schnellen!"
>
> Oder wie hast du dir das vorgestellt?

Nein so natürlich nicht aber eine Mindestanforderung für CPU und GPU 
etc.

von nicht so (Gast)


Lesenswert?

Wenn man Google zum Thema "GPU vs CPU Neural Network" fragt, findet man 
unendlich die geistigen Ergüsse von anderen dazu.

von nicht so (Gast)


Lesenswert?

ttom schrieb:
> Nein so natürlich nicht aber eine Mindestanforderung für CPU und GPU
> etc.

Die Mindestanforderung resultiert aber nicht aus den verwendeten Tools, 
sondern aus den genutzten Modellen. Und da ist die einzige wirklich 
harte Anforderung, dass das Modell in den Speicher passt.

(Stimmt nicht ganz, CUDA setzt eine GPU mit einer bestimmten Compute 
Capability vorraus, aber daraum gehts dir ja nicht)

Du kannst NNs auch auf dem Raspberry Pi laufen lassen, wenn dir danach 
ist. Macht halt tendentiell keinen Spaß.

von Rolf M. (rmagnus)


Lesenswert?

nicht so schrieb:
> Du kannst NNs auch auf dem Raspberry Pi laufen lassen, wenn dir danach
> ist. Macht halt tendentiell keinen Spaß.

Es gibt aber auch z.B. den Jetson Nano von NVidia. Dessen CPU ist eher 
langsamer als die des neuesten RPi, aber er hat eine flotte GPU für 
neuronale Netze.
Wäre die CPU-Leistung tatsächlich so eine Spaßbremse, dann hätte NVidia 
den SOC doch sicher nicht so gebaut.

von nicht so (Gast)


Lesenswert?

Rolf M. schrieb:
> Wäre die CPU-Leistung tatsächlich so eine Spaßbremse, dann hätte NVidia
> den SOC doch sicher nicht so gebaut.

Wie meinst du das? Nicht in jeder Anwendung kommt nunmal ein 
ausgewachsener PC infrage, aus Kosten-, Platz- und Energiegründen.

Wir testen auch gerade einen Jetson als möglichen Ersatz für die 
Industrie-PC mit RTX2080 (ok, wir waren dabei zu testen, dann kam 
Corona).

Zum Entwickeln macht das keinen Spaß und die Objekterkennung läuft etwa 
20x langsamer, aber für die Anwendung in der Serie könnte es reichen, 
weil die Bilderkennung nur einen sehr kleinen Teil der Taktzeit der 
Maschine darstellt.

In einem anderen Projekt wird derselbe PC verwendet, aber da ist selbst 
die RTX2080 grenzwertig langsam, da käme ein Jetson nicht infrage, die 
Maschine würde damit >90% der Zeit stehen und warten.

von Rolf M. (rmagnus)


Lesenswert?

nicht so schrieb:
> Rolf M. schrieb:
>> Wäre die CPU-Leistung tatsächlich so eine Spaßbremse, dann hätte NVidia
>> den SOC doch sicher nicht so gebaut.
>
> Wie meinst du das?

Die Frage war: Wenn ich ein neuronales Netz betreiben will, brauche ich 
dann nur eine starke GPU, oder muss auch die CPU leistungsfähig sein, 
weil die GPU sonst nicht ausgelastet wird? Wenn aber auf einem Raspi 
schon die CPU zu langsam für die GPU wäre, müsste sie es nach der 
Theorie auf einem Jetson Nano ganz bestimmt sein. Trotzdem baut NVidia 
ihn.

> Zum Entwickeln macht das keinen Spaß und die Objekterkennung läuft etwa
> 20x langsamer, aber für die Anwendung in der Serie könnte es reichen,
> weil die Bilderkennung nur einen sehr kleinen Teil der Taktzeit der
> Maschine darstellt.

Es ging nicht um die Geschwindigkeit allgemein, sondern um das 
Verhältnis zwischen der Leistung der CPU und der Leistung der GPU.
Dass rechenintensive Aufgaben auf langsamen Rechnern weniger Spaß machen 
als auf schnellen, ist ja nun keine Überraschung.

von Frank K. (fchk)


Lesenswert?

Rolf M. schrieb:

> Es gibt aber auch z.B. den Jetson Nano von NVidia. Dessen CPU ist eher
> langsamer als die des neuesten RPi, aber er hat eine flotte GPU für
> neuronale Netze.
> Wäre die CPU-Leistung tatsächlich so eine Spaßbremse, dann hätte NVidia
> den SOC doch sicher nicht so gebaut.

Das ist noch etwas anders. Die Jetson-Boards haben Unified Memory, d.h. 
nicht nur die CPU, sondern auch die GPU kann auf den gesamten 
Hauptspeicher zugreifen. Das macht schon viel aus, weil Du dann einfach 
nicht mehr kopieren musst.

Eine normale PCIe-Grafikkarte kann das nicht. Da hast Du nur kleine 
Speicherfenster, durch die Du Daten durchreichen kannst. Und nur bei den 
großen Quadros kannst Du per 64 Bit Adressierung das ganze RAM auf 
einmal sehen.

fchk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.