Meine 4 Xeon E7 bietet eine niedrigere Leistung als eine einzige 8. Generation i5

493
Frost

Ich habe eine offene Frage an dich:

Ich habe in meinem Büro einen Second-Hand-Server eingerichtet, um unsere ML-Modelle darauf zu trainieren. Es enthält 4 Xeon E7 4820 ( https://ark.intel.com/products/53675/Intel-Xeon-Processor-E7-4820-18M-Cache-2_00-GHz-5_86-GTs-Intel-QPI ) - 2, 00 GHz, 8 Kerne, jeweils 16 Threads, 128 GBit RAM und 128 GB SWAP (SSD Swap).

Ich habe jedoch meine ersten Tests mit dem Lernen gemacht und überraschenderweise war es erstaunlich ... langsam. 11 Minuten zum Trainieren, wenn es auf meiner 8. Generation i5-CPU (1,6 GHz, 4 Kerne, 8 Threads) mit 8 GB RAM und 8 GB Swap dauert, dauert es nur 5 Minuten.

Htop sagt mir, dass paralleles Rechnen eingeschaltet ist und die CPU-Lastspitzen bei i5 um 3 und bei 4 E7 bei 22 liegen; Hast du eine Ahnung, warum es so einen Leistungsunterschied gibt? Ich weiß, dass das Mooresche Gesetz ein unwiderstehliches Phänomen ist, aber für eine 1-jährige CPU des mittleren Endes, die die vier 7-jährige Xeon E7 übertrifft, kann ich meinen Kopf nicht rund um diese CPU wickeln. Hoffe du kannst helfen! :)

PS: Ich habe bereits Cuda und CuDNN installiert, aber es funktioniert noch nicht und ich habe das Lernen nur mit CPU durchgeführt. Ich war so verblüfft über die Ergebnisse, dass ich aufhörte, an der GPU-Beschleunigung zu arbeiten (wir haben einen kleinen 1050 Ti, den ich auf dem Server installiert habe), um an dem Problem zu arbeiten. Ich habe sichergestellt, dass auf beiden Computern genau derselbe Code ausgeführt wird.

Danke im Voraus ! :)

Frost

0
Welche CPU hat der I5? davidgo vor 5 Jahren 0
Da ist es, Intel Core i5 8250U: https://ark.intel.com/products/124967/Intel-Core-i5-8250U-Prozessor-6M-Cache-up-to-3_40-GHz Frost vor 5 Jahren 0

1 Antwort auf die Frage

1
Mokubai

Ihr Problem (wie bei den meisten maschinellen Lernproblemen) hängt wahrscheinlich mit der Speicherbandbreite zusammen.

Maschinelles Lernen ist nicht besonders CPU-rechenintensiv, sie führt viele "einfache" Berechnungen durch, ist jedoch stark durch die Bandbreite des Arbeitsspeichers begrenzt. Dies ist einer der Gründe, warum Grafikkarten-Stream-Prozessoren dafür so gut sind. Jeder Stream-Prozessor ist relativ begrenzt (im Vergleich zu einer CPU), aber für einfachere Operationen machen die enorme Bandbreite und die schiere Anzahl von Prozessoren die Einschränkungen mehr als wett.

Um einen zufälligen i5 der 8. Generation auszuwählen :

Max Memory Bandwidth 41.6 GB/s 

CPU-Boss scheint darauf hinzudeuten, dass die Speicherbandbreite einer E7-4820 der ersten Generation 23 GB / s (23.464 MB / s) beträgt.

Ein Multiprozessor-Computer muss den Arbeitsspeicher ständig über mehrere CPUs hinweg kopieren oder anderweitig auf den Arbeitsspeicher von einer CPU zu einer anderen zugreifen.

Die Kombination aus gemeinsam genutztem Speicher und wesentlich geringerer Bandbreite schadet wahrscheinlich dem älteren System.

Neuere Xeons beanspruchen eine Bandbreite von 85 GB / s.

Ich habe nicht darüber nachgedacht, das würde alles erklären, einschließlich der Tatsache, dass derselbe Unterschied bei vergleichbaren CPUs zu beobachten war. Vielen Dank! Glauben Sie, dass ich diesen Server irgendwie nutzen kann? (es hat definitiv eine anständige Rechenleistung, es wäre schade, es nicht zu verwenden) Frost vor 5 Jahren 0
Mit deutlich mehr Arbeitsspeicher können Sie nichts dagegen tun, wenn Sie größere Modelle verwenden, bei denen Sie nichts dagegen haben, etwas länger zu dauern. Wahrscheinlich ist es schneller, wenn der verwendete Arbeitsspeicher den Systemspeicher des i5 übersteigt. Abgesehen davon konnte ich nicht wirklich ahnen, wofür Sie eine solche Maschine sonst noch verwenden könnten ... Mokubai vor 5 Jahren 0
Nun, Sie waren sehr hilfsbereit, vielen Dank! Einer der Hauptvorteile der Maschine war, dass sie viele Steckplätze für GPUs zur Verfügung hat. Ich komme schnell zur GPU-Optimierung zurück :) Nochmals vielen Dank! Frost vor 5 Jahren 0
Bei den 4 CPUs würde ich davon ausgehen, dass sie alle über die gleiche Menge an Speicher verfügen, theoretisch könnte jeder Prozessor eine Reihe von Modellen einzeln trainieren. Wenn Sie also 4 subtil unterschiedliche Modelle gleichzeitig benötigen, würden die Xeons erneut eingesetzt wahrscheinlich insgesamt schneller sein. Sie müssen nur herausfinden, wie ein bestimmter Prozessor und der angeschlossene RAM verwendet werden. Dann hätten Sie eine (theoretische) Gesamtbandbreite von 92 GB / s, allerdings nur, wenn Sie 4 statt nur einen Satz verwenden. Mokubai vor 5 Jahren 0
Wenn Sie die Multiprozessor-Maschine effizient verwenden möchten, müssen Sie deren NUMA-Konfiguration berücksichtigen. Eine CPU sollte meistens auf direkt angeschlossenen Speicher zugreifen. Keine Ahnung, ob jemand ML-Software für NUMA geschrieben hat. Daniel B vor 5 Jahren 2
Nun, ich werde das überprüfen. Ich habe jedoch alles für die GTX 1050Ti eingerichtet und meine Lernzeit ging von 11 Minuten auf 25 Sekunden zurück. Ich würde also sagen, es ist interessanter, GPUs zu multiplizieren, anstatt zu versuchen, diese CPUs auszunutzen. Es ist ein bisschen schade, aber ich habe einen guten Second-Hand-Deal erhalten, also ist es in Ordnung :) Ich halte Sie auf dem Laufenden, wenn ich Lösungen finde, die Operationen separat an mehrere CPUs zu senden, danke an alle! :) Frost vor 5 Jahren 0