Othello 549 Posted December 13, 2022 Share Posted December 13, 2022 SMT hat bei Intel Prozessoren einen eigenen Namen: Hyperthreading Beides ist vergleichbar, es geht darum, auf einem physikalischem Core zwei Threads gelichzeitig laufen zu lassen. Es gibt verschiedene Meinungen dazu, ob SMT für die Performance von Vorteil ist oder eher von Nachteil. Die Antwort hängt stark von der verwendeten Hardware ab. Wer ZEN Prozessoren verwendet, sollte SMT eine Chance geben, bei Verwendung von Intel Prozessoren könnte es besser sein, man verwendet SMT nicht. Wer es genau wissen möchte, bekommt jetzt ordentlich Lesestoff Meine ersten Assembler Programme schrieb ich für die 6502 CPU, diese CPU war wunderbar einfach strukturiert und der Befehlssatz klar definiert. Heutige Prozessoren sind Universen davon entfernt, dieser Umstand macht sich in der Komplexität des geposteten Artikels bemerkbar. Aber man muss ihn ja nicht lesen, man darf - wenn man es möchte. Hier ein übersetzter kurzer Auszug zum Thema: Zitat 26.3 Der AMD Zen-Kernel Die Zen-Prozessorfamilie bringt AMD zurück ins Spiel, nachdem sie mehrere Jahre lang hinter Intel zurücklagen. Der Zen-Kernel hat einen Durchsatz von fünf oder sechs Anweisungen pro Taktzyklus, was den bisherigen Rekord darstellt. Besonders hoch ist der Durchsatz bei Vektorcode. Der Zen 2, 3, und 4 können vier 256-Bit-Gleitkomma-Vektoren pro Taktzyklus berechnen. Der hohe Durchsatz stellt Programmierer und Compiler vor die Aufgabe, die erhöhte Parallelität auf Befehlsebene in Single-Thread-Anwendungen zu nutzen. Der Kerndurchsatz ist so hoch, dass es sinnvoll sein kann, zwei Threads pro Kern laufen zu lassen, im Gegensatz zu einigen anderen Prozessoren mit geringerem Kerndurchsatz. Das Abrufen und Dekodieren von Befehlen ist jedoch immer noch ein sehr wahrscheinlicher Engpass, der die Leistung bei der Ausführung von zwei Threads einschränken kann. Der neue μop-Cache ist eine wichtige Verbesserung, die den Engpass des Befehlsabrufs und der Dekodierung in den meisten kritischen Schleifen beseitigt. Die großen Caches auf allen Ebenen stellen eine besonders wichtige Verbesserung dar. Die Cache-Bandbreite beträgt 32 Byte pro Takt bei Zen 1 und 64 Byte pro Takt bei Zen 2, 3 und 4 Zitat 23.18 Gleichzeitiges Multithreading Der Prozessor kann zwei Threads in jedem Kern ausführen. Dies ist sinnvoll, weil der Durchsatz jedes Kerns so hoch ist, dass er selten von einem einzelnen Thread vollständig genutzt wird. Im Allgemeinen erhält jeder Thread die Hälfte der Ressourcen, wenn zwei Threads auf demselben Kern laufen. gleichen Kern laufen. Die Warteschlangen der μops werden gleichmäßig auf die beiden Threads verteilt, so dass jeder Thread die Hälfte des maximalen Durchsatzes erhält. Die Caches, Verzweigungsprädiktoren, Ausführungseinheiten Ausführungseinheiten und die meisten anderen Ressourcen werden von den beiden Threads konkurrierend genutzt. Gleichzeitiges Multithreading ist nicht vorteilhaft, wenn eine gemeinsam genutzte Ressource einen Engpass darstellt, der Engpass darstellt, der die Leistung einschränkt, z. B. Befehlsdekodierung oder Cache. ... ... Und hier ist der Link: 04.11.2022 — The microarchitecture of Intel, AMD, and. VIA CPUs. An optimization guide for assembly programmers and compiler makers. By Agner Fog. https://www.agner.org/optimize/microarchitecture.pdf 1 Link to comment Share on other sites More sharing options...
Deputy Sheriffs simHeaven 1664 Posted December 13, 2022 Deputy Sheriffs Share Posted December 13, 2022 vor 1 Stunde schrieb Othello: Wer ZEN Prozessoren verwendet, sollte SMT eine Chance geben Ähm, vielleicht bin ich zu alt um das zu verstehen, doch was genau willst du uns sagen und wie mache ich das? Betrifft das überhaupt X-Plane (und wenn ja wie?) oder ist das allgemein geschrieben? Ist denn nicht multi-threading eh schon aktiviert? Ich hab 16 Kerne und 32 Threads Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 13, 2022 Share Posted December 13, 2022 vor 4 Minuten schrieb simHeaven: Ähm, vielleicht bin ich zu alt um das zu verstehen, doch was genau willst du uns sagen und wie mache ich das? Betrifft das überhaupt X-Plane (und wenn ja wie?) oder ist das allgemein geschrieben? Ist denn nicht multi-threading eh schon aktiviert? Ich hab 16 Kerne und 32 Threads SMT wird im UEFI-Bios aktiviert. 1 Link to comment Share on other sites More sharing options...
Othello 549 Posted December 13, 2022 Author Share Posted December 13, 2022 16 Kerne * 2 Threads (SMT) = 32 Threads Alles OK Du musst nichts mehr tun, es sei denn, du möchtest dass per Core nur 1 Thread läuft. Diese Einstellung wird gerne als vorteilhafte Einstellung gehandelt, wenn um optimale Kernperformance geht. Bei ZEN Processoren schein diese Meinung nicht unbedingt zu stimmen. (EDIT: bei Intel Prozessoren schon eher, da wäre es von Vorteil, das SMT abzuschalten). Manche Meinungen halten sich lange, auch wenn sie längst widerlegt wurden (siehe gesunder Spinat, weil viel Eisen). Da ich weiß, daß diese Diskussion zum Teil heftig geführt wird, dachte ich, ich unterfüttere meine Meinung mit guten Argumenten. Und es ist allgemein geschrieben, d.h. es betrifft die Rechnerleistung allgemein, und somit eben auch X-Plane. /Günther Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 14, 2022 Share Posted December 14, 2022 vor 23 Stunden schrieb Othello: Bei ZEN Processoren schein diese Meinung nicht unbedingt zu stimmen. Ist ein interessantes Thema: Bin gerade anders herum unterwegs und habe seit ca. 1 Woche SMT zum Testen wieder abgeschaltet. Eigentlich wird allgemein berichtet, dass der Leistungszuwachs eines Rechners bei Hinzufügen zusätzlicher Kerne nur unterproportional wächst (sofern immer mehr als genügend Threads die zusätzliche Kerne vollständig in Anspruch nehmen). Dies ist in erster Linie der Tatsache geschuldet, dass Threads permanent aktiviert, dazu willkürlich auf die zur Verfügung stehenden, unterschiedlichen Kerne verteilt werden, Daten aus dem auf heutigen Systemen gemeinsam genutzten Cache/Hauptspeicher über die Daten-Busse geschaufelt werden müssen, etc. Dann wiederum fliegen die Threads gleich wieder aus der aktiven Schiene und werden für ein paar Millisekunden irgendwo geparkt. Ist also auch eine Sache, wie u.a. der Scheduler eines OS-Systems läuft. Dazu kommt die Frage, wie der 2. , "virtuelle" Core eines CPU-Kerns in Hardware gegossen ist, also ob X-Plane-Threads auf diesen SMT-Cores genau so schnell laufen, wie auf dem "Haupt"-Kern. Es kann also sein, dass die AMD-Hyper-Cores in Hinblick auf das spezifische Anforderungsprofil, das zeitkritische X-Plane-Threads ausmacht, besser geeignet sind, als die Intel-Vertreter. Link to comment Share on other sites More sharing options...
Othello 549 Posted December 14, 2022 Author Share Posted December 14, 2022 Hallo, das ist alles richtig, aber der Hauptgrund für keinen linearen Anstieg der Performance mit der Anzahl der Kerne ist meiner Meinung ein anderer, es ist das Betriebsystem. Früher war es einfach, Multiuser Systeme zu erstellen. Es gab zwar mehrere User, aber nur eine CPU. Die CPU wurde dann im Zeitscheibenverfahren aufgeteilt. Dann kamen die Systeme, die mehere CPUs hatten, damit konnten User Prozesse parallel laufen, der Kern/Kernel/das OS liefen aber weiterhin nur auf einer CPU. Und dann kam der schwere Schritt, auch den Kernel zu parallelisieren. Die Schwierigkeit sind die Racing Conditions, der gleichzeitige Zugriff auf Daten jeglicher Art muss geregelt werden. Dafür gibt es verschiedene Verfahren, wen es interessiert, der kann sich über Semaphore, Mutexe, spinning Loops informieren. Die Synchronisation kostet aber je nach Methode viel Zeit. Um die Anzahl der Zugriffsregelungen klein zu halten, kann man diese für große Bereiche definieren, also Dinge wie eine Speicheranforderung zu bedienen, einen neuen Prozess zu starten u.s.w.. Der Grad der Parallelisierung des Kernels ist jedoch bei dieser groben Granulierung gering, d.h. mehr CPUs ermöglichen zwar mehr gleichzeitige laufende User Threads, aber der Stau an den Synchronisationspunkten des Kernels wächst und verhindert so die lineare Leistungszunahme bei Erhöhen der Anzahl der CPUs. Die Lösung: eine sehr feingranulierte Verteilung der Synchronisationspunkte. Dies erfordert neben schnellen Lösungen vor allem eine unglaublich komplexe Logik, um Deadlocks zu vermeiden. Der Entwicklungsaufwand ist enorm. Ich hatte in meinem Berufsleben mit Solaris von Sun Microsystems zu tun. Dieses OS hat hervorragend skaliert, nahezu linear, es ist also möglich. Aber nicht mit jedem OS _______ Das eben Geschriebene bezieht sich auf die Skalierbarkeit der Performance in Abhängigkeit von Kernen, mein vorheriges Schreiben auf die Skalierung innerhalb eines Kerns durch symetrisches Multithreading. Hier kommt es darauf an, dass beide Threads möglichst ohne warten auf Resourcen arbeiten können. Und da scheint die ZEN Architektur zu glänzen. Aber wie es sich konkret mit spezifischen Anwendungen verhält, muss man testen. In meinen Tests konnte ich bezüglich X-Plane keine Leistungsminderung bei Verwendung von SMT feststellen. Bei der Vielzahl der Kerne der Ryzen CPUs ist dies für X-Plane sicher nicht nötig, aber mir ging es mehr darum zu zeigen, dass ein Abschalten des SMT mit diesen Prozessoren nicht nötig ist. Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 14, 2022 Share Posted December 14, 2022 vor 2 Stunden schrieb Othello: aber der Hauptgrund für keinen linearen Anstieg der Performance mit der Anzahl der Kerne ist meiner Meinung ein anderer, es ist das Betriebsystem. Da bin ich bei dir ... und ist der Grund, warum ich aktuell vollständig auf Linux gewechselt bin. XP11 lief bei mir auf einem eigens nur für X-Plane reservierten Win-System, während mein Linux-Arbeitsrechner u.a auch - quasi als Sicherung - die gleiche XP11-Installation gehostet hat. Obwohl ich auf der Linux-Seite einen etwas schwächeren I7 betrieben habe, schien mir XP11 auf der Linux-Seite immer etwas "flüssiger" zu sein. Also jetzt radikal XFCE-Linux-Mint pur, Distribution komplett bis auf Firefox abgestrippt, 64GB RAM, nur noch NVMe-SSD, ohne swappen. XP12 mal mit C172 und dann eben die mit jede Menge Thread-Beipack vollgeknallte Zibo-737, oder den FF320 und über eine längere Zeit bewegen. Mal sehen, ob es etwas in Hinblick auf SMT ,an oder aus, gibt. Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 14, 2022 Share Posted December 14, 2022 vor 9 Minuten schrieb hmkaiser: Da bin ich bei dir ... und ist der Grund, warum ich aktuell vollständig auf Linux gewechselt bin. XP11 lief bei mir auf einem eigens nur für X-Plane reservierten Win-System, während mein Linux-Arbeitsrechner u.a auch - quasi als Sicherung - die gleiche XP11-Installation gehostet hat. Obwohl ich auf der Linux-Seite einen etwas schwächeren I7 betrieben habe, schien mir XP11 auf der Linux-Seite immer etwas "flüssiger" zu sein. Also jetzt radikal XFCE-Linux-Mint pur, Distribution komplett bis auf Firefox abgestrippt, 64GB RAM, nur noch NVMe-SSD, ohne swappen. XP12 mal mit C172 und dann eben die mit jede Menge Thread-Beipack vollgeknallte Zibo-737, oder den FF320 und über eine längere Zeit bewegen. Mal sehen, ob es etwas in Hinblick auf SMT ,an oder aus, gibt. Dazu eine Frage, ich habe Linux Mint Version 21 Cinnamon 64bit. Dort habe ich x-plane 12 installiert, den neuesten Nvidia treiber, bekomme aber eine Fehlermeldung: X-plane failed to initialized Vulcan and can not run. Welches Linux hast Du und welchen Treiber verwenest Du? Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 14, 2022 Share Posted December 14, 2022 vor 2 Stunden schrieb stevebiker: Welches Linux hast Du und welchen Treiber verwenest Du? Mint-XFCE und den nVidia-Treiber 525. Ich würde aber eher vermuten, dass deine Graka Vulkan nicht verarbeiten kann. Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 14, 2022 Share Posted December 14, 2022 Eine Nvidia Geforce RTX 3090 OC? In Windows kann es sehr wohl Vulcan. Und den %25 hatte ich in Mint, da wurde mein 2ter Monitor nicht mehr erkannt! Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 15, 2022 Share Posted December 15, 2022 Die Fehlermeldung bringt XP12 auch, wenn die Graka Vulkan nicht verdauen kann. Eine RTX 3090 gehört natürlich nicht in diese Gruppe. Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 15, 2022 Share Posted December 15, 2022 Ich habe es in Linux jetzt aufgegeben! Es ist, wieder mal, die altbekannte Suche nach dem Fehler, wenn man etwas außertourliches habe möchte! Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 15, 2022 Share Posted December 15, 2022 vor 2 Stunden schrieb stevebiker: Ich habe es in Linux jetzt aufgegeben! Es ist, wieder mal, die altbekannte Suche nach dem Fehler, wenn man etwas außertourliches habe möchte! Ich bin da immer etwas, wie soll ich sagen, irritiert: XP10 und XP11 habe ich parallel immer unter Linux betrieben, jetzt mit XP12 ist mein X-Plane-Rechner ebenfalls mit Linux unterwegs. Ich habe mit Ubuntu 11.04 (?) begonnen, bin dann in 2014 auf Mint-XFCE umgestiegen. Mit den alten Nouveau-Treibern für nVidia hat es noch keinen großen Spaß gemacht, jetzt mit richtigen Treibern läuft es völlig problemlos. Und das praktisch direkt "Out of the Box": Linux vom Stick installieren, nVidia-Treiber über das installierte Tool "Treiberverwaltung" installieren, XP12 installieren, läuft! Wüsste nicht, dass ich irgend etwas zusätzlich anfassen musste. Ist mir völlig schleierhaft, warum das bei dir nicht klappt. Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 15, 2022 Share Posted December 15, 2022 Leider,, ist mir auch schleierhaft. Ich wechsle mal nach Linux, dann sehen wir weiter. Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 15, 2022 Share Posted December 15, 2022 Sodala, ich habe nun den 2ten, vorher nicht entdeckten und auch nicht empfohlenen 525er, ganz unten in der Treiberverwaltung installiert und, X-plane und auch mein 2ter Bildschirm funktionieren! Jetzt versuche ich es in Linux, wie es läuft. Wie erstelle ich einen Starter für X-plane12? Es ist weder im Startmenü, noch in der Taskleist und Schreibtisch zu finden? Ich habe es schlicht schon vergessen, die meisten Programme tragen sich selber ins Startmenü ein. Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 15, 2022 Share Posted December 15, 2022 vor einer Stunde schrieb stevebiker: ich habe nun den 2ten, vorher nicht entdeckten und auch nicht empfohlenen 525er, ganz unten in der Treiberverwaltung installiert Bei mir gibt's nur - Mint XFCE "Out of the Box" - 1x den 525 und der steht oben. vor einer Stunde schrieb stevebiker: Wie erstelle ich einen Starter für X-plane12? Na ja, da ist das Aufschreiben der Frage aufwändiger, als das "Machen". Auf dem Desktop per rechter Maustaste "Starter erstellen", dann in "Befehl:" per "Anwendung auswählen" XP12 zuweisen, in "Arbeitsverzeichnis:" das XP12-Verzeichnis einkopieren, erledigt. Link to comment Share on other sites More sharing options...
Othello 549 Posted December 15, 2022 Author Share Posted December 15, 2022 Und spricht das jetzt für oder gegen SMT? 1 Link to comment Share on other sites More sharing options...
stevebiker 45 Posted December 15, 2022 Share Posted December 15, 2022 Ja, Du hast Recht! Wir sind vom Thema abgekommen. Sorry! 1 Link to comment Share on other sites More sharing options...
Frithjof 159 Posted December 16, 2022 Share Posted December 16, 2022 Am 13.12.2022 um 13:56 schrieb Othello: (EDIT: bei Intel Prozessoren schon eher, da wäre es von Vorteil, das SMT abzuschalten). Ich hatte das bei mir mal probiert und konnte keinerlei Verbesserungen feststellen. Link to comment Share on other sites More sharing options...
Othello 549 Posted December 16, 2022 Author Share Posted December 16, 2022 vor 9 Minuten schrieb Frithjof: Ich hatte das bei mir mal probiert und konnte keinerlei Verbesserungen feststellen. So ist das in der Wissenschaft, das letzte Wort hat immer das Experiment. Für X-Plane scheint es also nicht so wichtig zu sein. Link to comment Share on other sites More sharing options...
Coverdale 33 Posted December 16, 2022 Share Posted December 16, 2022 Ich habe es gestern mal ausprobiert und hatte bei 1 Thread pro Core bei XP12 ca. 8-10 FPS mehr, bei XP11 ca. 5-8 FPS mehr. Also probieren, was besser ist. Gruss, Bernd P.S.: Muss ja noch erwähnen, das ich Intel I7-Core habe. 1 Link to comment Share on other sites More sharing options...
Othello 549 Posted December 16, 2022 Author Share Posted December 16, 2022 So ganz Unrecht hat anscheinend der Verfasser des Papers in meinem Eingangsposting dann doch nicht. Link to comment Share on other sites More sharing options...
Flightrookie 504 Posted December 16, 2022 Share Posted December 16, 2022 Ich habe mal in AS EDDF/B24 mit der A321 getestet. Mit HT: ca. 26 FPS Ohne HT:. ca. 30 FPS Das muss ich aber noch einmal woanders verifizieren. Link to comment Share on other sites More sharing options...
Deputy Sheriffs simHeaven 1664 Posted December 17, 2022 Deputy Sheriffs Share Posted December 17, 2022 Am 13.12.2022 um 13:56 schrieb Othello: Du musst nichts mehr tun, es sei denn, du möchtest dass per Core nur 1 Thread läuft. Diese Einstellung wird gerne als vorteilhafte Einstellung gehandelt, wenn um optimale Kernperformance geht. Bei ZEN Processoren schein diese Meinung nicht unbedingt zu stimmen. Ich hab das eben bei meiner AMD 5950X getestet, bei XP11 (40 fps) und MSFS (61 fps) sah ich keine wesentliche Änderung, doch bei XP12 stiegen die fps von 25 auf 33, die CPU-Zeit für die Frame-Berechnung ist nun wesentlich niedriger. Für mich scheinen die Ergebnisse eher auf ein nicht optimiertes XP12 hinzudeuten. Ich lasse das bei mir vorerst so, denn ich fliege und teste immer mehr mit XP12. -> war ein guter Tipp!! Link to comment Share on other sites More sharing options...
hmkaiser 223 Posted December 17, 2022 Share Posted December 17, 2022 vor 30 Minuten schrieb simHeaven: doch bei XP12 stiegen die fps von 25 auf 33, die CPU-Zeit für die Frame-Berechnung ist nun wesentlich niedriger. Ich kann nach etlichen Versuchen bei mir keine signifikante Veränderung unter Linux ausmachen. FPS und insbesondere die CPU-Zeit bleiben mit, oder ohne SMT im gleichen Bereich. Allerdings ist meine 1070-Graka der entscheidende Engpass, i.d.R. braucht die deutlich mehr als die doppelte Zeit wie die CPU. Bin mir nicht ganz sicher, ob das nicht auch einen wie auch immer gearteten Einfluss auf die CPU-Zeit hat. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now