mae schrieb:
Die Verteilung der Adressen auf die Cache-Slices erfolgt nur aufgrund der Adresse. Die Signallaufzeit haengt ja davon ab, welcher Kern auf die Adresse zugreifen will.
Ist das nicht falsch herum? Sorry mein Littleman ist etwas her... Ich habe noch nicht mein HelloWorld in Asmbler auf meiner Todo Abgehackt... ab ich muss doch als Dev definieren, wo was auf welchen Kern läuft... und das war ja auch anfangs ein riesen Problem, weil das so einfach lange über OS nicht so sauber funktionierte, weshalb auch, hau mich nicht tot wen ich total käse oder die falsche CPUs nenen, aber war das nicht ein Problem von manchen Threadrippern, weil eben der code random über kerne geschubst wurde... was schlecht für die bit latenz war?!
und ich weiß, intel arbeit daran, das sheduling vom OS weg zu nehmen... zumindest bilde ich mir das ein... ist das schon hier der case? Aber woher weiß dann bei komplexen code, wo wie was welchen timefrime bruacht... das steht ja nicht gehash? oder wird das mit gehashed? sprich der hash bildet meine anforderungen ab?
mae schrieb:
Wenn zuviele Kerne gleichzeitig auf Adressen im selben cache-slice zugreifen wollen, muessen wohl Zugriffe warten (also hoehere Latenz). Allgemeiner: Wenn zuviele Kerne gleichzeitig L2-cache misses haben (selbst wenn sie auf verschiedene Slices zugreifen wollen), gibt's einen Stau auf dem Ringbus, wie auch auf einer Stadtautobahn zur Stosszeit, obwohl die meisten Autos verschiedene Ausgangsorte und verschiedene Ziele haben.
Deshalb ist ja auch Multithreading in gaming oft nicht Ideal gewsen... weil dann sogar kernteile, lociceinheiten sich um sachen stritten, und die entscheidungen länger gedauert haben , als wen es sauber, in einem strang nacheinander abgehandelt wurde...???
mae schrieb:
Ob die Prozesse, die durch die hoeheren Latenzen langsamer werden, voneinander abhaengig oder unabhaengig sind, macht nicht viel aus.
Ich habe erhlic h gesagt überhaupt kein plan darüber. ich habe letztens nen vid über Atari 500 Nerds gesehen, die in asembler nen Videos Demo realisieren.... und schon dort alle achtung... Aber mich intressiert das schon irgendwie... weil scheinbar die notwendigkeit von Asembler nie total auszusterben scheint. Aber ich bin da ncoh gefühlt 5 jahre von meinem HelloWorld weg.
mae schrieb:
Aber es kann helfen, wenn die Prozesse auf dem selben Kern laufen, dann findet der abhaengige Prozess die Daten hoffentlich im L2-cache, und braucht in dem Fall gar nicht auf den L3 zugreifen. Nachteil, wenn beide Prozesse gleichzeitig laufen koennten: sie laufen (ohne SMT) abwechselnd, oder (mit SMT) muessen sich Hardware-Resourcen teilen. Also wenn die beide gleichzeitig laufen koennen, viel CPU brauchen, und wenig Daten austauschen, ist es sinnvoller, wenn sie auf verschiedenen Kernen laufen.
Aber wer stellt die hirachie auf.... macht das der Compiler? ist der compiler allein dafür verantwortlich, das alles auf die richtigen Kerne landet?
mae schrieb:
Bei den E-Kernen teilen sich 4 denselben L2-cache, da koennten die beiden Prozesse auf zwei E-Kernen desselben Clusters laufen, und brauchen keinen L3-cache, um miteinander zu kommunizieren. Jemand hat hier gepostet, dass Intel bei Nova Lake auch solche Cluster aus 2 P-Kernen haben wird, dann entsprechend auch da.
Ja das ist aber der punkt wo ich bis strugle nach neuman-archetektur... aber vermutlich bin ich wieder total falsch oder ganz woanders... ist wohl auch unnätzes wissen für jeden der niemals an nem Reisbrett für Chipfertigung arbeitet.... wie das genau organiseirt ist....
mae schrieb:
Dazu kannst Du Dir viel ueber "concurrent computing" anschauen. Ja, Programmierer muessen sicherstellen, dass die Daten richtig bearbeitet werden, und die Architektur gibt gewisse Garantien dafuer, was die Hardware da tut.
aber das ist asembler ebende... oder geht das auf compiler ebene? ich halt son pythen/Jawa dau.....

aber man merkt schnell, alles was mit effizens zu tun hat geht richtung c und asembler...
mae schrieb:
Wie sich Intel's L3-Konzept in der Praxis schlaegt, siehst Du bei ihren Prozessoren seit vielen Jahren, und es gibt auch Leute, die das gemessen und die Messwerte veroeffentlicht haben.
NIcht wirklcih wen man jetzt gaming bleibt... und das nur benchmarks anschaut.... da kommt man nicht viel in kontakt mit asembler und c hardware nahen sachen... Wen man im Datencenter arbeitet... sieht das sicher anders aus... bzw gibt ja auch viele Usecases wo Intel kreise um AMD ziehen soll.... Mich interessierte mich nur wie das gehandelt bekommen das "zuviele köche...." alles zum stottern bringen. Bin gespannt auf die tests