Was ist der Unterschied zwischen " Cache-unfreundlichem Code " und " Cache-freundlichem " Code? Wie kann ich sicherstellen, dass ich cache-effizienten Code schreibe?
Unten sind zwei Programme aufgeführt, die fast identisch sind, außer dass ich die Variablen iund umgeschaltet habe j. Sie laufen beide in unterschiedlicher Zeit. Könnte jemand erklären, warum dies passiert? Version 1 #include <stdio.h> #include <stdlib.h> main () { int i,j; static int x[4000][4000]; for (i = 0; i < …
Kann mir jemand die ungefähre Zeit (in Nanosekunden) geben, um auf L1-, L2- und L3-Caches sowie auf den Hauptspeicher von Intel i7-Prozessoren zuzugreifen? Obwohl dies keine spezielle Programmierfrage ist, ist es für einige Programmierprobleme mit geringer Latenz erforderlich, diese Art von Geschwindigkeitsdetails zu kennen.
Dies könnte sich wie eine subjektive Frage anhören, aber ich suche nach bestimmten Fällen, auf die Sie im Zusammenhang damit gestoßen sein könnten. Wie macht man Code, Cache effektiv / Cache-freundlich (mehr Cache-Treffer, so wenig Cache-Fehler wie möglich)? Aus beiden Perspektiven, Datencache und Programmcache (Anweisungscache), dh welche Dinge im eigenen …
Mein Verständnis ist, dass der Hauptunterschied zwischen den beiden Methoden darin besteht, dass bei der Methode "Durchschreiben" Daten sofort über den Cache in den Hauptspeicher geschrieben werden, während bei "Zurückschreiben" Daten in einer "späteren Zeit" geschrieben werden. Wir müssen noch in "letzter Zeit" auf die Erinnerung warten. Was ist der …
C ++ 17 hinzugefügt std::hardware_destructive_interference_sizeundstd::hardware_constructive_interference_size . Zuerst dachte ich, es sei nur eine tragbare Möglichkeit, die Größe einer L1-Cache-Zeile zu ermitteln, aber das ist eine übermäßige Vereinfachung. Fragen: Wie hängen diese Konstanten mit der L1-Cache-Zeilengröße zusammen? Gibt es ein gutes Beispiel, das ihre Anwendungsfälle demonstriert? Beide sind definiert static constexpr. …
Aus einer früheren Frage in diesem Forum habe ich erfahren, dass in den meisten Speichersystemen der L1-Cache eine Teilmenge des L2-Cache ist, dh jeder aus L2 entfernte Eintrag wird auch aus L1 entfernt. Meine Frage ist nun, wie ich einen entsprechenden Eintrag im L1-Cache für einen Eintrag im L2-Cache ermitteln …
Ich versuche, eine genaue Beschreibung der Datencache-Hierarchie der aktuellen CPU unter Linux zu erhalten: nicht nur die Größe der einzelnen L1 / L2 / L3- (und möglicherweise L4-) Datencaches, sondern auch die Art und Weise, wie sie aufgeteilt oder gemeinsam genutzt werden Kerne. Auf meiner CPU (AMD Ryzen Threadripper 3970X) …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.