AMD Interlagos oder Zambesi für C4D Renderworkstation?

yukomono

Neuling
Thread Starter
Mitglied seit
12.09.2011
Beiträge
6
Hallo Zusammen,
ich arbeite mit Cinema 4d und möchte/muss meine Hardware den Möglichkeiten anpassen. Cinema rendert prozessorbasiert, was bedeutet, je mehr schnelle Prozessoren und je mehr Kerne desto schneller ist die Berechnung der einzelnen Renderpasses.

Meine Frage(n) an Euch: (btw. ich habe nur gegoogeltes Hardwarewissen und selber noch nie einen Rechner zusammengestellt, deshalb entschuldigt, wenn ich irgendwie "dumm-doof" frage)

Budget: so um 8000 Euro, soviel würde ein Powermac mit 12 Kernen kosten.

Also:

1. Macht es Sinn, eine serverbasierte Workstation mit 4 AMD Interlagos (Bulldozer) CPU's zusammen zu stellen, oder ist dies überhaupt möglich?
64 Cores mit ca. je 3 GHZ.

2. Gibt es auch Mainboards die 4 oder mehr Prozessoren aufnehmen können im PC Bereich? Dann wäre auch eine Lösung mit den neuen AMD FX Prozessoren (Zambesi 8Core) denkbar.

3. Hättet Ihr alternative Ideen um einen ultimativ-schnellen Renderrechner zu bauen? Budget um 8000 Euro.

Ich hoffe, Ihr könnt mit diesen Laienfragen was anfangen und mir bei der Entscheidungsfindung weiterhelfen. Vielen Dank für Euere Hilfe!!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Also unmöglich ist es nicht 4 Interlagos CPUs auf ein Board zu bekommen:

Hardwareluxx - Preisvergleich

Die AMD-FX CPUs sind die Desktop-Variante des Interlagos, allerdings ist hier generell das Problem, dass die ersten Interlagos CPUs geradde erst ausgeliefert werden und niemand offizielle wirklich was über Preis und Leistung weiß und wann sie wirklich verfügbar sind. ;)
 
Das geht schon, aber skaliert Cinema4D noch mit 64Cores?

Wenn darauf nur gerendert werden soll und du etwas platz im Keller hast wären vielleicht 2 Renderkisten die bessere Wahl, für den Preis bekommt man schon 2 Kisten in der Leistungsklasse des MAC Pro.

Ich weiss ja nicht was an Lizenzkosten dazukommt, aber 2 sual Sockel 6 core Xeons könnten sich bei preis/leistung rechnen.

Ich persönlich mag die Supermicro twin Kisten, sind platzsparend und günstig. Nur eben auch laut.

Hab mal gerade eben bei Pyramid im Shop was zusammengeklickt,

Basissystem
SM Barebone 1U TWIN 2xXE55 SATA
Prozessor
4 x Intel Xeon X5675 Westmere-EP SC 3,067GHz
Hauptspeicher
12 x DDR3 4GB 1333 ECC registered ATP
Festplatte
2 x WD RE4 2503ABYX 250GB SATA2 64MB
Garantie
PYRAMID GARANTIE 36 MONATE

kostet ca. 7k ohne MWst.
Dazu kämen noch lizenzkosten für Software.
Bei kleineren CPUs geht der Preis nochmal deutlich runter. Aber auch so haben die im vergleich zum MacPro ein extrem gutes Preis/leistungsverhältnis.
 
*verschoben in den Workstation/Server-Profibereich*
 
Im Moment gibts die neuen AMD CPUs noch nicht...

Ich kann dir aber wohl schonmal etwas Wind aus den Segeln nehmen. Es wird keine 16Core AMD CPUs mit 3GHz geben soweit mir bekannt. Die großen 16 Kerner werden wohl etwas über 2GHz takten zum Start.

Zum Thema Serverbasierte Workstation, ja das geht im allgemeinen absolut stressfrei. Aber es sind ein paar Randbedingungen einzuhalten.
- Quadsockel Boards haben idR einen größeren Formfaktor als eATX. Das heist, spezielle Cases müssen her.
- aktuelle AMD Sockel G34 basierte CPUs melden sich intern als zwei CPU Sockel beim System. Das wird beim BD nicht anders sein. Für eine Dual Sockel Maschine sieht das Betriebssystem schon 4 physische CPUs (somit geht schonmal kein Client Windows ala Windows 7 mehr)
Bei 4 Sockeln sieht das System 8 CPUs. Und man braucht ne Windows Server 2008 (R2) Enterprise Edition um alle CPUs nutzen zu können.
- du brauchst Reg. ECC RAM und jeder CPU muss mindestens ein RAM Riegel zugesteckt sein. Besser zwei, da G34 Quadchannel RAM Interface mitbringt, machen gar vier Riegel pro CPU Sinn. (wären also 4x4 RAM Riegel)
- du brauchst ein Netzteil, was genügend Bumms liefert und was nicht durch unnötige Aufteilung der Stromschienen auf PCIe Stromstecker Potential ungenutzt lässt. -> könnte schwerer werden, sowas zu finden.


Zu 2.
Es gibt nur die Serverboards mit vier und mehr Sockeln. Zambezi ist das Desktop Produkt und läuft allein nur auf Single Sockel Maschinen. Es müssen also Opterons der 62xxer Reine ran.

Zu 3.
Alternative Ideen, ja da gibts einige...
Wenn du es gleich brauchst, Intel S1366 Dual Hexacore Xeon System. -> Vorteil, du hast keine Beschränkung seitens Windows und CPU Sockelanzahl.
Nutzt man den Cinebench als Leistungsindikator bekommst du ca. 15-17 Punkte bei den schnellsten CPUs.
Alternative zwei wäre jetzt Dual C32 AMD System. Vorteil sehr günstig, gleichsam keine Beschränkungen seitens Windows und CPU Sockel. Leistungstechnisch aber wohl "nur" um die 12 Punkte.
Alternative drei wäre jetzt Dual G34 mit zwei 12 Kern Magny-Cours CPUs. Nachteil, mindestens 2008 (R2) Server Standard von nöten für die CPUs. Leistungstechnisch wohl ebenso um die 15 Punkte.


Achso eine Sache noch, Quad Sockel G34 AMD Boards sind per se schonmal schweine teuer, da legst du gut und gerne 700-1000€ allein fürs Board. Pro CPU könnte nochmal bei dicken CPUs um die 1000€ und mehr fällig werden. Mit 8000€ kommst du zwar weit, aber nicht das volle Programm ;)
Das gleiche gilt für Intels Nehalem EX Plattform mit 6-8 Kerner Xeon CPUs und vier Sockeln+.
 
Hallo Fr@ddy, hallo Mick,
danke für Eure schnelle Rückmeldung. Der Rechner nicht ausschließlich zu finalen Ausgabe benutzt werden, sondern vorallem die Arbeitszeit verkürzen. Ich glaube diesen Hingtergrund muss ich erläutern. Bei der erstellung von CGI Bildern oder Annimationen sind die korrekte Lichtstellung, Bewegungsunschärfe etc. von immenser visueller Bedeutung. Bei der Arbeit selber werden deshalb unzählige "Testrenderings" vorgenommen. (Zumindest arbeite ich so) Um hier nicht immer wertvolle Zeit auf ergebnisse zu warten um nachher Korrekturen vorzunehmen ist es wichtig dass schnell Ergebnisse der Einstellung wichtig sind.

Ich habe direkt keine Eile und kann auf das Release der CPU's warten, wenn diese nachher auch wirklich schnell sind und viele Kerne bzw Threads auswerfen. Eine Renderfarm macht insofern keinen Sinn, da ich momentan hauptsächlich mit CGI (Visualisierungen) zu tun habe und der Netrenderer einzelne Bilder auf unterschiedliche Rechner schickt. (dies macht Sinn beim Rendern von Annimationen.

C4d unterstützt bis zu 256 Threads was bei HT zumindest 128 Kerne bedeutet.

@ Fr@ddy: Was meinst Du mit Lizenzkosten? An was muss ich da denken?
 
Er mient mit Lizenzkosten, dass sein Beispielsystem nur die Hardware ist, du brauchst ja minimum noch ein Betriebssystem. ;) Und vielleicht sonst noch Software, die ist in seinem Preis halt nicht mit drinne... :)
 
Was haltet Ihr von HP Workstations?
z.B. die Z600 mit 4 Sockeln und 4 Xeon Westmare 3GHZ CPU's? Ist das eine Alternative? Vorteil wäre ein abgestimmtes Gesamtpaket, Gibt es hier nennenswerte Nachteile?
 
Wenn du noch warten kannst, wäre vllt sogar SandyBridge-E interessant. Soll wohl angeblich im November auf den Markt kommen. Ob die Serverversion gleichzeitig kommt, weis ich allerdings nicht.
Anfangs mit Hexacores und 3,3GHz oder sowas. Dürfte nochmal um die 15% zu nem aktuellen Dual Hexacore Xeon System drauflegen.

Was haltet Ihr von HP Workstations?
z.B. die Z600 mit 4 Sockeln und 4 Xeon Westmare 3GHZ CPU's? Ist das eine Alternative? Vorteil wäre ein abgestimmtes Gesamtpaket, Gibt es hier nennenswerte Nachteile?

Gute Wahl ;)
Fertig PCs sind im allgemeinen eine gute Wahl wenn es um produktiv Umgebungen geht ;)
Am besten kauft man dann noch ne Garantieerweiterung mit, weil man an die Teile sonst unter Umständen bei nem Defekt nicht mehr so ohne weiteres rankommt.
 
Zuletzt bearbeitet:
Was haltet Ihr von HP Workstations?
z.B. die Z600 mit 4 Sockeln und 4 Xeon Westmare 3GHZ CPU's? Ist das eine Alternative? Vorteil wäre ein abgestimmtes Gesamtpaket, Gibt es hier nennenswerte Nachteile?

Wo gibt es die denn mit 4 Sockeln und Westmere? Die hat meines Wissens nur 2 Sockel, aber auch dann ist sie sicherlich eine gute Wahl.
 
- du brauchst Reg. ECC RAM und jeder CPU muss mindestens ein RAM Riegel zugesteckt sein. Besser zwei, da G34 Quadchannel RAM Interface mitbringt, machen gar vier Riegel pro CPU Sinn. (wären also 4x4 RAM Riegel)

Stimmt so nicht.

Server CPUs der aktuellen Generation unterstützen auch nonReg nonECC Module.
Beim G34 habe ich es explizit im Einsatz. Das spart man dann nochmal, gerade bei größeren Bestückungen, zusätzlich Geld.
Durch das QuadChan Interface kommt man nur in sehr speziellen Fällen auf 3 Riegel/pro Chan, was dann reg RAM vorraussetzt.
 
Zuletzt bearbeitet:
Ich dacht bei AMD muss es Reg. RAM sein!?
Na dann, um so besser...
 
Früher war das durchaus Pflicht, heute eben nicht mehr. Das ist ja das Gute an den Teilen.

Schnallste pro socket 8x4GB Module rein und hast 32GB/CPU, das ist doch was, und bei den aktuellen Preisen....
 
Was benutzt du denn jetzt für Hardware und um welchen Faktor solls schneller werden?
 
Hallo,

wenn du auf Preis/Leistung achten willst, kann sich ein kleiner Cinema 4D Cluster mit DrQueue vielleicht lohnen. Schonmal darüber nachgedacht? Dann solltest du mit weniger monströsen Maschinen als Desktop wegkommen :-)

Grüße
 
Hallo nochmals,
danke für die vielen Tipps. !!!

Eine Renderfarm macht wie gesagt nur bei Animationen Sinn. Für das Rendern und Arbeiten in Quasi Echtzeit leider nicht.

Welche Komponenten könnt Ihr mir empfehlen. (ich kenne leider keine davon und muss mich auf die Ratschläge von Euch verlassen). Natürlich sollten diese perfekt harmonieren. Z.B wie o.g. diese Ram-Riegel... habe es nicht wirklich verstanden was ich da jetzt bräuchte

Mein Plan:

- Motherboard mit entweder 2 oder 4 Sockeln
- 2 oder 4 Multicore Prozessoren (je mehr Kerne bzw. Ghz desto besser, zb. Interlagos, oder Xeon (gibt es xeon eigentlch auch mit mehr als 6 Kernen?)
- 32 Gig Ram
- Grafikkarte 2Gig
- SSD 500gig Festplatte für das System
-2X1 Terrabyte Festplatten für die Daten
- Netzteil mit genug Power
- Kühlung/Lüftung

und das ganze sollte unter windows 7 laufen.
Was meint ihr, kann man das machen???

grüße
yukomono
 
Nein, so gehts nicht. Win7 unterstützt maximal 2 physische CPUs.

Backbone
 
habe gerade nochmals mit maxon telefoniert. es muss nicht windows 7 sein. cinema läuft auch auf den windows server versionen ohne probleme.

dann nochmals :-) welche komponenten könnt ihr mir empfehlen?

grüße und danke!!!
 
Ich hab doch in Post 5 schon die Möglichkeiten geschrieben...
Du solltest dich erstmal entscheiden, welchen Weg du gehen willst und wir können dann schauen, was der Spaß im Detail kosten wird und welche Komponenten im Detail zusammen passen.
 
Kleine Anmerkung noch, wenn Cinema 4D bis 256 Threads unterstützt heisst das noch lange nicht, dass es mit 256 cores 256 mal so schnell läuft wie auf einem.
Oft skaliert software bis zu n kernen fast linear, danach flacht das aber teilweise ganschön heftig ab.
Hab schon oft genug Software gesehen, die auf 12core maschinen mit 10 Threads flotter fertig war als mit 12. Bei gleichen Takt ganz ohen turbo oder sowas.

Cinema 4D skaliert zwar soweit ich weiss ganz gut, aber sicher auch nicht unbegrenzt. Mit 4 Sockel Magny-cores /Buldozer könntest du da schon an die grenzen des Sinvollen kommen.

Wenns auf ein paar Wochen nicht ankommt würde ich Sandy EP und die Server Buldozer abwarten wenns mein Geld wäre. Ansonsten würde ich mir nen paar Cinebench werte von den Magny cores und 6core Xeons anschauen und kaufen was immer gerade flotter ist.
 
1. Macht es Sinn, eine serverbasierte Workstation mit 4 AMD Interlagos (Bulldozer) CPU's zusammen zu stellen, oder ist dies überhaupt möglich?
64 Cores mit ca. je 3 GHZ.
Wir haben in unserem HPC Cluster einige AMD Magny Cours Quad Socket Knoten, und eine deutlich größere Zahl an Dual Socket Knoten. Das Hauptproblem an diesen Knoten ist es, daß die Opteron 6100 effektiv aus zwei six Cores zusammengebaut sind, die sich einen Speichercontroller teilen. Wenn man normale SMP Software verwendet, dann skaliert diese nur auf 6 maximal 8 Cores (ausgetestet unter anderem mit Intels MKL), wobei der Zuwachs für Core 7 und 8 schon deutlich abfällt. Das Optimum ist es also bei solcher Software nur die Cores einer Magny Cours Hälfte zu nutzen. Wahrscheinlich läuft die Rendersoftware nicht sonderlich performant auf einem NUMA System.

Will man so einen Knoten optimal ausnutzen muß man unbedingt auf die NUMA Architektur des Knoten RÜcksicht nehmen. Das heißt man muß deutlich mehr Arbeitsspeicher einbauen als man das so naiv annimmt, da jeder Sockel sein eigenes RAM hat, wenn eine CPU auf den Arbeitsspeicher des Nachbarsockel zugreifen muß, geschieht dies deutlich langsamer und dabei wird die CPU des Nachbarsockels ausgebremst, da sie während des Zugriffs kein RAM Zugriff machen kann. Daher ist es notwendig vor einer längeren Berechnung die Daten auf jeden einzelnen NUMA-Knoten zu duplizieren und am Ende die Ergebnisse zurückzukopieren.

Ein Artikel von Kazushige Goto über den Aufwand eine simple Matrixmultiplikation auf einem NUMA System effektiv umzusetzen.

Ohne einen Test der Software auf so einem Rechner würde ich ihn auf gar keinen Fall kaufen. Wahrscheinlich ist ein Single Socket System am effektivsten mit C4D. Erst wenn C4D NUMA optimiert ist, wird sie auf einem modernen Multisockelsystem ordentlich skalieren. Dabei ist es egal, ob die CPU von AMD oder Intel ist, mittlerweile sind die Systeme von beiden Anbietern NUMA Architekturen.

---------- Beitrag hinzugefügt um 08:45 ---------- Vorheriger Beitrag war um 08:25 ----------

Was haltet Ihr von HP Workstations?
z.B. die Z600 mit 4 Sockeln und 4 Xeon Westmare 3GHZ CPU's? Ist das eine Alternative? Vorteil wäre ein abgestimmtes Gesamtpaket, Gibt es hier nennenswerte Nachteile?
Die Xeons in diesen HPs wird bald ersetzt, d.h. es wird bald Nachfolgemodelle dieser Workstations geben. Bei der kleinsten Z200 (Xeon 3400) ist schon der Nachfolger Z210 (Xeon E3) am Markt.

Ansonsten gibt das gleiche wie für die AMD Opterons, die Z600 und Z800 sind NUMA Maschinen. Software skaliert nur dann richtig gut, wenn sie auf diese Tatsache Rücksicht nimmt.

Ein einzelner Core eines Opteron 6100 ist beim HPC recht langsam, ein Xeon geht da deutlich flotter zu Werke. Vorteile hat man bei einem 6100 nur dann, wenn man wirklich alle Kerne nutzen kann, und das ist bei dem größten Teil der Standardsoftware nicht der Fall.
 
Naja Cinema4D zerlegt ja letzendlich die Bilder die man berechnet in kleine Stückchen. Da könnte man jedem Thread seinen eigenen Speicherbereich geben und die zu bearbeitenden Daten somit immer nah am Core speichern.
Matrix operationen setzen meist voraus, dass man auf den gleichen Speicherbereich zugreifen kann, kann also gut sein, dass Cinema4D deutlich besser skaliert.
Ist eine frage der Realisierung, aber ungeprüft würde ich so eine 64core Kiste definitiv nicht kaufen.

Im kleinen Bereich kann man bei Cinema4D aber schon sehen, dass Speicherbandbreite und latenz keine große Rolle spielt, mit 6 cores z.B. skaliert die Software noch fast linear. 12 Cores sind auch deutlich flotter als 6. Hab keine genauen Zahlen mehr im Kopf ist schon 3 Jahre her, das ich mit der Software zu tun hatte. Damals habe ich eine kleine Renderfarm mit ~150 Cores gebaut und betreut. Daher weiss ich noch, dass alles außer CPU-leistung vernachlässigbaren Einfluss auf die Geschwindigkeit hatte. Aber damals hatten wir auch maximal 2 Quadcores mit HT pro Kiste also max. 16 Threads.
Aus dem Bauch raus würde ich schätzen, dass man am besten damit fährt 2 8core Sandy EP CPUs zu verbauen sobald die verfügbar sind. Taktrate halt so hoch wie es bezahlbar bleibt und ruhig Modelle mit HT wählen.
Es sei denn die Buldozer Platform für 2-4 Sockel überrascht mich.

Hatte dieses Jahr leider keine Zeit für Messen und sonstige Veranstaltungen, hab auch keine Teststellungen für neue CPU-Gereationen beantragt daher hab ich nahezu 0 infos zu den neuen CPU-Generationen.
Nur auf eins ist eigentlich immer verlass: Langsamer als die alte Generation werden die schon nicht ;-)
 
@jdl
Irgendwie ergibt deine Aussage zum Speichercontroller keinen Sinn...
G34 nutzt Quadchannel, einfach aus dem Grund, weil intern zwei DIEs zu einer CPU zusammen gepackt sind. So nutzen die 12 Kerner zwei sechs Kern CPUs, mit jeweils einem Dual Channel Interface. Die acht Kerner nutzen zwei vier Kern CPUs (teildeaktivierte sechs Kerner) mit ebenso einem Dualchannel Interface pro DIE.
Wenn du probleme mit der Skallierung hast, kann das an vielem liegen, aber wohl zu 99% nicht am RAM Interface. Mal ganz davon ab, mehr Speicherbandbreite nutzt bei aktuellen CPUs nahezu gar nichts. Performancegewinn nahezu Null.

Ich könnte mir eher vorstellen, das bei ungünstiger Aufteilung der Rechenlast auf ner Magny-Cours CPUs eben ein Task mit mehreren Threads intern nicht auf einem der beiden DIEs gehändelt wird, sondern ungünstigerweise auf beiden. Das bringt den enormen Nachteil mit, Daten zwischen dem Interconnect der beiden DIEs schaufeln zu müssen. Je nach Bandbreitenbedarf ist da schnell Ende im Gelände.
Ansonsten limitiert das Speicherinterface der AMD CPUs normal gar nicht... Was man gut daran erkennen kann, das schnellerer RAM quasi Null Performanceplus bringt.
 
Ist nicht zwingen ein Bandbreiten sondern eher ein Latenzproblem. Wenn bei dualboards beide Speichercontroller genutzt werden, wird einer ja über den anderen CPU-sockel genutzt und über HT bzw. Quickpath oder wie intel das nennt kommuniziert.
Das kann gerade bei mit OpenMP paralelisierter Software, die größere Speicherbereiche liest und schreibt dazu führen, dass es flotter läuft wenn alle Threads auf der selben CPU laufen. Caching mechanismen habens ja auch nicht leicht, wenn der vom Thread angefasste Speicherbereich groß ist und jeder wert nur einmal gelesen/geschrieben wird.
Habe das auch schon beobachten können bei einigen Dual Xeon Maschinen mit in OpenMP geschriebener Software, die eine etwas abgedrehte Speicherverwaltung nutzt. Doppelt verkettete Listen von Pointern auf grob verteilte Speicherbereiche unterschiedlicher größe lassen es eben nicht zu, effizient zu cachen. Lesen/Schreiben am Stück geht super auf den Kisten mit mehreren Speichercontrollern, aber die Latenz kann ein Böser Gegner sein.

Aber all das hat man bei Cinema4D nicht. Da kommt keiner auf die Idee schwarze Pixel mit Nullpointern zu ersetzen weil dass bei Bildern mit >95% schwarzanteil massig speicher spart und sich so größere Bilder rechnen lassen.
 
Es sind aber eben nicht zwei Speichercontroller, sondern vier. Pro CPU zwei Stück. Die Aussage von oben, bei einem Magny-Cours nur halbe Last anzulegen macht dementsprechend keinen Sinn. Zumindest nicht die Erklärung auf den Speichercontroller zu führen. Latenzen hin oder her... Die Problematik trifft bei so ziemlich jedem Workload auf, wo das OS Speicherzugriffe auf Bereiche einer anderen CPU durchführt. Nur kann das bei Teillast genau so passieren wie es bei Volllast passiert. Und das ist der Punkt ;)
 
Es trifft eben nicht auf alle Workloads zu die auf den anderen Speichercontroller zugreifen. Nur wenn du wenig am Stück liest und Caching-mechanismen keine Chance haben tritt das beschrieben Verhalten extrem auf.

Lies mal 4GB am Stück aus dem Speicher und dann nochmal 4GB aus random Adressen und dann immer 4 oder 8 Byte Stückchen. Der Unterschied ist gewaltig.

Natürlich versucht man solche Zugriffsmuster zu vermeiden.
Wir hatten den Fall trozdem in einer Software, bei der nur übergänge zwischen verschiedenen Materialien im 3D Raum zu berechnen waren. Die anderen relevanten Materialeigenschaften waren bekannt und mussten nicht gespeichert werden. Übergänge zwischen Materialien machen nur wenige % aus. Damit ließ sich über 90% Arbeitsspeicher sparen und wir konnten mit etwas mehr Rechenzeit Systeme simulieren die 10 mal größer waren ohne das der RAM überlief. Die Speicherverwaltung sah halt danach nur übel aus. Hätte sich sicher auch inteligenter lösen lassen, aber funktioniert und liefert in absehbarer zeit Ergebnisse.
Hab nicht schlecht geschaut, als im Profiler zu sehen war, dass ein return statement doppelt so viel Rechenzeit in Anspruch genommen hat als die relativ komplexe Berechnung in den Zeilen davor.
Mit der Software hatten wir nen Knick in der Skalierung sobald wir mehr als cores genutzt haben als auf einer CPU saßen. Ließ sich auch prima reproduzieren. Wenn man die Threads auf beide Sockel verteilt hat wars deutlich langsamer. Auf einer 12 core kiste skalierte die software bis 4 kerne nahezu optimal also 3.9x mal weniger rechenzeit als mit 1 kern. Mit 6 Threads warens 5.7x mal schneller, mit 8 Kernen noch 6.xx mal schneller und mit 10 cores warens immernoch 6.xx mal. Mit 12 Threads wars dann schon wieder langsamer als mit 10. Der große Knick kam als man mehr Threads gestartet hat, als auf einen Sockel passten.

Aber das hat mit Cinema 4D nun nicht mehr viel zu tun.
 
Zuletzt bearbeitet:
Das ist mir durchaus bewusst... Und im Grunde sage ich exakt das gleiche... Nur darf man eben nicht vergessen, das das Quadchannel Interface einer Magny-Cours CPU intern zwei CPUs mit je einem Dualchannel Interface ist.
Das heist, sechs Threads laufen optimalerweise auf einem DIE der CPU. Weitere sechs laufen auf dem anderen, sofern beide Tasks unabhängig von einander agieren, hat man maximale Performance, die geht. Ein Task mit 12 Threads auf einer CPU bringt schon den Nachteil mit, das Speicherzugriffe intern über den Interconnect der beiden DIEs abgehändelt werden müssen, was Performance drückt. Noch extremer wirds, wenn man Threads auf den anderen Sockel auslagert. Da muss der Datenstrom den Umweg über das Board gehen.

Aber die Aussage von oben, nämlich:
"Das Hauptproblem an diesen Knoten ist es, daß die Opteron 6100 effektiv aus zwei six Cores zusammengebaut sind, die sich einen Speichercontroller teilen.
...
Das Optimum ist es also bei solcher Software nur die Cores einer Magny Cours Hälfte zu nutzen.
"
... ist so eben nicht treffend und ich habe sie berichtigt. Die Magny-Cours Hälften teilen sich weder einen Speichercontroller (es gibt wie gesagt pro DIE ein Dualchannel Interface) noch ist es empfehlenswert nur die hälfte der Cores zu nutzen.
 
@jdl
Irgendwie ergibt deine Aussage zum Speichercontroller keinen Sinn...
G34 nutzt Quadchannel, einfach aus dem Grund, weil intern zwei DIEs zu einer CPU zusammen gepackt sind.
Die ganzen Tools und Übersichten geben zwar an, daß ein Prozessor aus zwei NUMA-Knoten bestehen würde, aber bei einem single threaded Speicherbandbreitentest merkt man davon rein gar nichts. Es ist vollkommen egal von welchen Core der CPU man allokierten Speicher anspricht, die Bandbreite ist immer gleich groß. Was bei NUMA-Knoten nicht der Fall wäre. Ich kann bei Gelegenheit das ganze auch mit zwei oder mehr Threads simultan testen.
Wenn du probleme mit der Skallierung hast, kann das an vielem liegen, aber wohl zu 99% nicht am RAM Interface.
Ein einfaches Gegenbeispiel:
Wir wollen zwei quadratische Matrizen mit double complex Werte addieren und in einer dritten Matrix ablegen: also A+B=C. Damit das realitätsnah ist, sollen die Matrizen z.B. die Dimension 20.000 haben. 20.000 * 20.000 mal 16Bytes, macht ca. 6GB. Wenn man richtig über die Felder iteriert, dann hat man keine Cache line pollution und der einzig limitierende Faktor ist die Speicherbandbreite.

Und so etwas ist nicht allzu ungewöhnlich. Sicherlich macht man auch viele Rechnungen die komplexer sind, aber simple Matrixadditionen und -multiplikationen finden sich in großer Zahl in Programmcode.
Mal ganz davon ab, mehr Speicherbandbreite nutzt bei aktuellen CPUs nahezu gar nichts. Performancegewinn nahezu Null.
Das gilt nur für typische Desktopanwendungen bei HPC stimmt das nicht mehr.
Ich könnte mir eher vorstellen, das bei ungünstiger Aufteilung der Rechenlast auf ner Magny-Cours CPUs eben ein Task mit mehreren Threads intern nicht auf einem der beiden DIEs gehändelt wird, sondern ungünstigerweise auf beiden.
Die Tests hatte ich trivialerweise mit Thread Pinning gemacht, so daß garantiert war, daß alle Cores zu einem Prozessor gehören, denselben L3 Cache etc. pp. Also 6 Cores auf einem Die und 2 auf dem anderen führte noch zu einem Geschwindigkeitszuwachs.
Das bringt den enormen Nachteil mit, Daten zwischen dem Interconnect der beiden DIEs schaufeln zu müssen.
Wie bereits beschrieben ist der Speicherzugriff von beiden Hälften des Opteron 6100 gleich schnell. Es ist egal, wo man den Speicher alloziert hat. Wenn man dagegen Speicher alloziert, der zu einem anderem Socket gehört, macht das einen nicht unerheblichen Unterschied. Bei einem Dual Socket braucht der single thread Stream Test ca. 120% der Zeit, bei einem Quadcore hängt es ab, auf welchen Socket man zugreifen will. Die beiden Nachbarn sind mit 120% zu erreichen, bei gegenüberliegenden braucht es ca. 145%.
Ansonsten limitiert das Speicherinterface der AMD CPUs normal gar nicht... Was man gut daran erkennen kann, das schnellerer RAM quasi Null Performanceplus bringt.
Das hat andere Gründe, aber ein schnellerer Speichercontroller würde bei HPC Workload definitv Vorteile haben.
 
Die ganzen Tools und Übersichten geben zwar an, daß ein Prozessor aus zwei NUMA-Knoten bestehen würde, aber bei einem single threaded Speicherbandbreitentest merkt man davon rein gar nichts. Es ist vollkommen egal von welchen Core der CPU man allokierten Speicher anspricht, die Bandbreite ist immer gleich groß. Was bei NUMA-Knoten nicht der Fall wäre. Ich kann bei Gelegenheit das ganze auch mit zwei oder mehr Threads simultan testen.
Mir ist keine Möglichkeit bekannt, wie man durch einen Thread laufend auf einem Core den Speicherzugriff so umbiegen, kann, das dieser nicht sien eigenes Speicherinterface nutzt, sondern Speicher über den Interconnect zum anderen DIE zum Beispiel und dessen Speicherinterface. Das einzige was gehen würde, wäre so große Speicherbereiche zu alloziieren, dass der RAM am eigenen Interface steckend nicht ausreicht. Dann gibts einbrüche wie du schon vermerktest bei Zugriffen über einen anderen Sockel.

Aber sei es drum. Das gleiche Bild bei deinen Tests kommt wohl daher, das eben nicht ein einziger Speichercontroller verwendet wird, sondern zwei. Es spielt dabei keine Rolle, wo der Thread läuft. Läuft er auf DIE 1, geht er bei Speicherinterface 1 raus, läuft er auf DIE zwei, wird SI 2 genutzt. Für genauere Analysen müsste man die Bandbreite des Interconnets genauer wissen.


Ein einfaches Gegenbeispiel:
Wir wollen zwei quadratische Matrizen mit double complex Werte addieren und in einer dritten Matrix ablegen: also A+B=C. Damit das realitätsnah ist, sollen die Matrizen z.B. die Dimension 20.000 haben. 20.000 * 20.000 mal 16Bytes, macht ca. 6GB. Wenn man richtig über die Felder iteriert, dann hat man keine Cache line pollution und der einzig limitierende Faktor ist die Speicherbandbreite.

Und so etwas ist nicht allzu ungewöhnlich. Sicherlich macht man auch viele Rechnungen die komplexer sind, aber simple Matrixadditionen und -multiplikationen finden sich in großer Zahl in Programmcode.
In dem Fall treten bedeutend mehr Speicherzugriffe als Rechenoperationen auf. Das wird man in der Praxis wohl so extrem eher selten antreffen.

Das gilt nur für typische Desktopanwendungen bei HPC stimmt das nicht mehr.
Es ging ja ursprünglich nicht um HPC...
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh