Wir überlegen zZt. in der Firma, mal mit einer KI ("GPT4All") für Recherche- und Verwaltungszwecke zu experimentieren. Tests mit einem älteren Dell-Server waren hinsichtlich der Performance sehr ernüchternd: Briefe schreiben statt Dialog.
Also muss da wohl "ein wenig" Power her: z.B. ein 7000er Ryson-Prozessor 5GHz 16-Kerner mit ausreichend RAM und SSD. Soweit sogut ...
GPT4All ist für die Nutzung ohne GPUs geeignet. Frage nun: Wer oder was nutzt eigentlich die 16 Kerne effizient parallel? Entscheidet das die Anwendung oder das OS (ich würde Linux verwenden)? Es gibt schließlich Prozesse , die kann man parallelisieren und andere nicht, weil Abhängigkeiten bestehen ...
Kann es sein, dass so ein (ja nicht ganz billiger Prozessor) vielleicht garnicht wirklich genutzt wird?
Die Anwendung entscheidet, wieviele Threads sie nutzt und wie gut oder schlecht sie die Last darauf verteilt, parallelisiert.
Das Betriebssystem entscheidet dynamisch, auf welchem Kern welcher dieser Threads läuft. Aufgrund der Aufteilung in Core-Gruppen mit jeweiligem L3-Cache kann das bei AMDs jenseits 8 Cores eine recht interessante Aufgabe sein, deren Strategie man u.U. im BIOS beeinflussen kann.
Kann es sein, dass so ein (ja nicht ganz billiger Prozessor) vielleicht
garnicht wirklich genutzt wird?
Es gibt schließlich
Prozesse , die kann man parallelisieren und andere nicht, weil
Abhängigkeiten bestehen ...
Nicht nur deshalb - kann auch sein, dass sie einfach nur single-Threaded programmiert wurde.
Es gibt ja mehrere Möglichkeiten, wie man etwas paralellisiert.
Wenn das ein Port ist, der ursprünglich auf einer GPU lief, dann sollte man das gut parallelisieren können, da die GPU im Prinzip nur hardcore-SIMD (single-instruction-multiple-data) macht.
Dafür kann man SIMD-Befehle wie AVX benutzen.
Also man kann einerseits SIMD Instruktionen benutzen und andererseits mehrere Threads, die SIMD Instruktionen benutzen.
Ich würde, naiverweise, davon ausgehen, dass beides benutzt wird.
Kann es sein, dass so ein (ja nicht ganz billiger Prozessor) vielleicht
garnicht wirklich genutzt wird?
Klar kann das sein, würde ich hier aber ausschließen.
Hmm ... wo wäre denn das "bewilligte" Geld von ca. 600,- für eine verbesserte KI-Performance denn vermutlich besser investiert?
Bei einer Ryson-CPU oder bei einer "kleinen" NVidia RTX, neu mit 8GB und gebraucht mit 12GB bei ungefähr gleichem Preis?
Die Software GPT4All kann mit Beidem umgehen. Der Rechner wäre ausschließlich für die KI gedacht.
Übrigens schade, dass es keine Server-Mainbords für diesen Zweck zu einem vernünftigen Preis gibt (ca. 250,-), im Rack wäre das "Ding" gut untergebracht ...
Wenn man die GPUs einer solchen Grafikkarte für eine KI benutzt, zeigt die dann eigentlich auch noch ein Bild? Oder muss man zur Einrichtung eine zweite Grafikkarte bzw. die Onboard-Grafik nutzen?
Das wäre in meinem Falle zwar egal, weil ich die KI sowieso nicht lokal, sondern über die API im Netz nutzen will und für die Einrichtung RDP bzw. VNC verwenden werde. Nur so interessehalber ... :-)
Hmm, hab bisher überwiegend nur mit Servern die mit dicken GPUs ausgestattete gewesen sind, über SSH gearbeitet.
Aber hab auch mal mit meiner Heim-GPU unter Linux mal was ausprobiert - ich glaube da fror dann das Bild ein, bis die GPU mit ihrer Aufgabe fertig war 🤔
Wie sich das über RDP / VNC verhält ... 🤔 Keine Ahnung 🙈
Es gibt ja Beschleunigerkarten die zwar den Grafikchip drauf haben
aber keinen Anschluss für einen Monitor.
Ja, in dem Zusammenhang habe ich die Nvidia "Tesla"-Reihe entdeckt, ist deutlich preiswerter. Ich muss aber erst herausfinden, ob GPT4All damit etwas anfangen kann. "CUDA" und so ... Neuland halt. ;-)
Wie ist das eigentlich mit den tensorflow Chips von Coral? Kann man die
einsetzen, sind relativ günstig.
Davon habe ich im Zusammenhang mit GPT4All bisher nichts gelesen.
Hmm ... wo wäre denn das "bewilligte" Geld von ca. 600,- für eine
verbesserte KI-Performance denn vermutlich besser investiert?
Haenge mal eine "0" an das Budget und multipliziere es noch mit
einem Faktor zwischen 1 bis 5.
Dann bist du in dem Bereich wo "HPC" anfaengt.
Da kann man schon fast 600 Euro fuer eine schnelle Netzwerkanbindung
einplanen.
Mit KI-Anwendungen beschaeftige ich aber nicht.
Die 600 Eu werden vermutlich rausgeworfenes Geld sein, weil es
am Rest wie RAM, SSD, ... fehlt.
Übrigens schade, dass es keine Server-Mainbords für diesen Zweck zu
einem vernünftigen Preis gibt (ca. 250,-), im Rack wäre das "Ding" gut
untergebracht ...
Gibt es fast. :)
Es gibt "kleine" Compute-Cluster z.B. fuer rechenintensive
Ansys-Produkte. So viele Server-"Desktops" will sich sicher
keiner in die Racks stellen.
Nur ist der Preis halt "unvernünftig". Bei den Preisen fuer
Software, Wartung & Lizenzen spielt das aber keine Rolle mehr.
Übrigens schade, dass es keine Server-Mainbords für diesen Zweck zu
einem vernünftigen Preis gibt (ca. 250,-), im Rack wäre das "Ding" gut
untergebracht ...
Es gibt doch auch 19-Zoll-Gehäuse, wo normale ATX-Boards reinpassen.
Wenn man die GPUs einer solchen Grafikkarte für eine KI benutzt, zeigt
die dann eigentlich auch noch ein Bild? Oder muss man zur Einrichtung
eine zweite Grafikkarte bzw. die Onboard-Grafik nutzen?
Die Grafikkarte kann von mehreren Programmen gleichzeitig genutzt werden. Das Bild geht also grundsätzlich noch.
Aber hab auch mal mit meiner Heim-GPU unter Linux mal was ausprobiert -
ich glaube da fror dann das Bild ein, bis die GPU mit ihrer Aufgabe
fertig war 🤔
Wenn die Grafikkarte voll ausgelastet wird, kann das die Performance der Ausgabe durchaus erheblich beeinträchtigen.
Hmm ... wo wäre denn das "bewilligte" Geld von ca. 600,- für eine
verbesserte KI-Performance denn vermutlich besser investiert?
Haenge mal eine "0" an das Budget und multipliziere es noch mit
einem Faktor zwischen 1 bis 5.
Wieviel man braucht, hängt doch sehr von der Anwendung aber, aber 600 €
für nen kompletten "KI"-Rechner klingt schon nach äußert wenig.
Erstens habe ich die 600,- nur für die zusätzliche GPU-Karte oder eine aktuelle "Super"-CPU angesetzt, genaues Lesen hilft.
Zweitens habe ich weiter Oben beschrieben, dass jemand bei Youtube eine GPT4All-Installation auf einem MacMini M2 betreibt und damit bereits Antworten im Bereich von 5...10s erhält.
Drittens rühren die exorbitanten Leistungansprüche der öffentlich zugänglichen KIs daher, dass dort tausende Anfragen gleichzeitig verarbeitet und beantwortet werden, was bei einer lokalen Ausführung nicht so ist.
Natürlich wäre in dem Falle mehr besser, es geht aber erstmal darum, einige Erfahrungen im lokalen Umfeld zu sammeln ...
Zweitens habe ich weiter Oben beschrieben, dass jemand bei Youtube eine
GPT4All-Installation auf einem MacMini M2 betreibt und damit bereits
Antworten im Bereich von 5...10s erhält.
"Jemand auf YT" ist natuerlich die Quelle fuer Entscheidungen. O tempora, o mores
Natürlich wäre in dem Falle mehr besser, es geht aber erstmal darum,
einige Erfahrungen im lokalen Umfeld zu sammeln ...
Bevor Du das Geld in die Hand nimmst: Was erwartest Du? Was erwartest Du fuer Deinen Betrieb (z.B. kannst Du einen Rechnungsposten "Fette und Hanf" bei jeder Rechnung dazupacken?) Was erwartest Du fuer Deine Kunden (ausser "ich mache was mit KI!")?
Ich sehe im Moment wenig Business-Cases bei den aktuellen KI-Modellen (viele Sachen die heute als KI gezeichnet werden wuerde ich mehr als angewandt Fuzzy-Logik sehen, but who wants to mince words).
Eine Frage fuer jemanden der aktuelle Intel-Technologie einsetzt: Intel hatte doch die Unterscheidung Performance- gegen Efficiency-Core eingefuehrt. Kann der Linux-Scheduler damit klar kommen? Soweit ich mitbekommen hatte, hatte Linux keinen richtigen Vorteil durch die verschiedenen Core-Arten.
Intel hatte doch die Unterscheidung Performance- gegen Efficiency-Core
eingefuehrt.
Einen Mix aus anfangs 2 und mittlerweile 3 verschiedenen Core-Typen gibt es in Linux schon recht lange, lange vor Intel, und zwar in Form der bigLITTLE Cores von ARM in Android-Geräten. Muss wohl doch vorteilhaft sein, sonst wäre das ja Unfug. Unklar nur, inwieweit das in die normale Linux-Entwicklungslinie einfliesst.
Kann der Linux-Scheduler damit klar kommen? Soweit ich
mitbekommen hatte, hatte Linux keinen richtigen Vorteil durch die
verschiedenen Core-Arten.
Spätestens seit Intel die P/E-Cores brachte, ist auch in der normalen Linux-Entwicklung deutlich Bewegung, die auch noch nicht abgeschlossen ist. Aussagen können dementsprechend schnell veralten.
Kann der Linux-Scheduler damit klar kommen? Soweit ich
mitbekommen hatte, hatte Linux keinen richtigen Vorteil durch die
verschiedenen Core-Arten.
Spätestens seit Intel die P/E-Cores brachte, ist auch in der normalen
Linux-Entwicklung deutlich Bewegung, die auch noch nicht abgeschlossen
ist. Aussagen können dementsprechend schnell veralten.
Spätestens seit Intel die P/E-Cores brachte, ist auch in der normalen
Linux-Entwicklung deutlich Bewegung, die auch noch nicht abgeschlossen
ist. Aussagen können dementsprechend schnell veralten.
Das mit den verschiedenen Cores ist eher was für Client-Devices also Handys, Notebooks, etc.
Auf Servern macht das IMHO wenig Sinn.
Das mit den verschiedenen Cores ist eher was für Client-Devices also
Handys, Notebooks, etc.
Auf Servern macht das IMHO wenig Sinn.
Zumindest ergibt es bei Compute-Servern wenig Sinn. Wobei es da mittlerweile neben den Arrays aus extrem heizenden P-Cores auch einen zweiten Trend zu sparsameren E-Cores gibt (gerne auch ARM), zumindest bei gut parallelisierbaren Aufgaben. Weil die bei gegebenem Wärme/Strom-Budget mehr Rechenleistung abliefern als die P-Cores, wenn man zum Ausgleich mehr Cores reinsteckt.
Bei andersgearteten Servern mit hoch variabler Leistungsanforderung kann das entsprechend anders aussehen. Der Begriff "Server" ist sehr variabel.
Allerdings gibt es einen Rattenschwanz an Parametern, die in die Leistungsfähigkeit einer Lösung einfliessen, wie sie hier angepeilt wird. Es gibt ja nicht nur Intels P/E-Cores, sondern beispielsweise auch AMDs 2-Level NUMA-Struktur, bei der man wählen kann (muss), ob eine L3-Gruppe eine NUMA Node ist, oder nur jeder Sockel eine. Mittlerweile bestehen auch Intels Xeons (wieder) aus mehreren gekoppelten Dies auf einem Sockel, also klassische 1-Level NUMA.
Konzipiert man Hardware für eine ganz bestimmte Aufgabe, kann es sich lohnen, auf solche Feinheiten der Architektur zu achten, wie obiges GPT4All, kann es sehr sinnvoll sein, sich umzusehen, welche Erfahrungen andere gemacht haben.
Zumindest ergibt es bei Compute-Servern wenig Sinn. Wobei es da
mittlerweile neben den Arrays aus extrem heizenden P-Cores auch einen
zweiten Trend zu sparsameren E-Cores gibt (gerne auch ARM), zumindest
bei gut parallelisierbaren Aufgaben.
AMD liefert so was bereits und Intel hat so was angekündigt.
Steckt im Grunde schon in den P/E Hybrid-Prozessoren drin, im Kleinen. Deren Gesamtleistung thermisch begrenzt ist, wenn die Aufgabe länger als einige Minuten ackert. Weil dann die Hauptlast von den E-Cores getragen werden muss, die P-Cores ihre Leistung nicht ausfahren können ohne wegzuschmelzen. Genau da ist dann natürlich ein cleveres Scheduling gefragt.
AMD liefert so was bereits und Intel hat so was angekündigt.
Lösungen von Drittfirmen gibt es seit Jahren, jenseits von x86. Amazon hatte sich als Hoster deshalb sogar zum Entwickler eigener Prozessoren gemausert.
Zweitens habe ich weiter Oben beschrieben, dass jemand bei Youtube eine
GPT4All-Installation auf einem MacMini M2 betreibt und damit bereits
Antworten im Bereich von 5...10s erhält.
Nein hast Du nicht. Das ist hier der Erste Beitrag der das Wort "youtube" überhaupt enthält.
Ein M2 CPU ist eine völlig andere Leistungsklasse für KI:
Der M2 enthält eine interne GPU die natürlich auch von der KI Software mitverwendet wird. Der M2 enthält einen speziellen Neural-Beschleuniger der ebenfalls von der KI verwendet wird. Der RAM ist Bestandteil des M2 Chips und sehr breit angebunden. Alle Cores im M2 (CPU,GPU,Neural) können mit voller Bandbreite auf den selben Speicher zugreifen. Beim M2 Pro ist der interne Speicher 3x schneller als auf einem üblichen Desktopsystem mit DDR5 Anbindung und gar 6x schneller als auf einem DDR4 System angebunden. D.h. du bräuchtest bei DDR-5 ein Hexa-Channel Memory Interface auf dem Mainboard um überhaupt in die gleiche Bandbreitenregion vorzustoßen. (Bei DDR-4 Oct-Channel). Und jetzt Rate mal was "KI" braucht: da werden Unmengen an Daten von Links nach Rechts und zurück durch den Speicher von den Cores verwurstet. Der Flaschenhals ist hier nicht der Core Takt, sondern die Speicherbandbreite.
Die Ryzen 7000 Serie (Dual-Channel-RAM) taugt dafür absolut nicht. Der schafft es gar nicht die Cores so schnell mit den Daten zu versorgen wie die die fressen wollen. Eine GPU könnte besser funktionieren, allerdings werden die schnell teuer wenn der RAM groß wird, und Du brauchst viel RAM, alles was über PCIe muss machts wieder langsam.
Wenn es unbedingt ne CPU werden soll, mindestens Octa-Channel RAM, davon viel, und am besten schnelle SSDs.
Zu den "600€" sag ich nichts, dafür bekommt man ja kaum noch was vernünftiges für privat, wenn man mehr als Internet und Word machen will. Im Businessbereich, naja also mein Firmennotebook hat wohl das vierfache gekostet... Komische Firma bei euch, wenn man KI unbedingt auf eigenen Systemen evaluieren will, da wird man wohl ein bisl. mehr investieren müssen.
wenn man KI unbedingt auf
eigenen Systemen evaluieren will, da wird man wohl ein bisl. mehr
investieren müssen.
Rechenleistung kann man mieten, und gegen Einwurf kleiner Münzen ad hoc variieren. Was besonders sinnvoll sein kann, wenn man nicht weiss, wieviel man wie lange benötigt. Oder weil die Sau vielleicht bald wieder das Dorf verlässt, verlorene Investitionen hinterlassend. Bleibt die Sau, kann man den Kram reinholen, weiss dann, was man benötigt.
HT ist ja vor allem ein Prozessorangebot und bei Computerspielen war lange Single- oder Dualcore Champ. Jedenfalls auf der CPU-Seite.
Vom Rechenbedarf her kann man ähnlich denken wie bei Bitcoins oder wie bei Wetterberechnungen: je mehr Rechenpower, desto besser. Klein Klein kannste knicken, aber wenn noch Altrechner irgendwo herumstehen, kann man die versammeln, und schauen, wie weit man mit MPI kommt.
Gibt man das in die übliche Suchmaske ein, kommt nicht viel. Immerhin haben schon andere ähnliches gefragt:
https://www.reddit.com/r/LocalLLaMA/comments/13zfjkl/lots_of_questions_about_gpt4all_finetuning_and/
Konzipiert man Hardware für eine ganz bestimmte Aufgabe, kann es sich
lohnen, auf solche Feinheiten der Architektur zu achten, wie obiges
GPT4All, kann es sehr sinnvoll sein, sich umzusehen, welche Erfahrungen
andere gemacht haben.
Beim Kernel und einer Compute-Aufgabe ist doch eher die Frage, wie gut er skalieren kann, nicht wie gut er sein Geschäft parallelisiert. Also wieviele Cores er überhaupt unterstützt.
Parallelisierung im Kernel ist eher eine Frage, wie grob oder fein noch zentrale Locks drin sind. Das dürfte heute allenfalls noch manche I/O-Themen betreffen, aber nicht die Kerndienste.
Ein M2 CPU ist eine völlig andere Leistungsklasse für KI:
Der M2 enthält eine interne GPU die natürlich auch von der KI Software
mitverwendet wird. Der M2 enthält einen speziellen Neural-Beschleuniger
der ebenfalls von der KI verwendet wird. Der RAM ist Bestandteil des M2 ...
Vielen Dank für die kompetenten Ausführungen und vor Allem für die Erklärung dazu, warum der M2 so relativ gut geeignet ist - das erklärt Vieles.
MacMini M2 gibts neu ab ca. 1500,-, gebraucht für die Häfte ...
Mich fasziniert die Idee, eigene Dokumente in die Wissensbasis aufzunehmen und bei Anfragen darauf Bezug zu nehmen. Soll angeblich möglich sein, indem man sie in einem reservierten Ordner ablegt. Ob und wie das funktioniert weiss ich natürlich bisher nicht, sonst müsste ich das nicht testen
MacMini M2 gibts neu ab ca. 1500,-, gebraucht für die Häfte ...
Du wirst zur maximal möglichen Speicherausstattung greifen müssen, und die Macs sind nicht aufrüstbar. RAM schon gar nicht. 32GB Versionen starten ab 2k€.
Wieviel man braucht, hängt doch sehr von der Anwendung aber, aber 600 €
für nen kompletten "KI"-Rechner klingt schon nach äußert wenig.
Erstens habe ich die 600,- nur für die zusätzliche GPU-Karte oder eine
aktuelle "Super"-CPU angesetzt, genaues Lesen hilft.
Ich habe es genau gelesen. Du hast geschrieben, dass dir 600 € "bewilligt" wurden und dass du jetzt überlegst, ob du dich eher auf eine schnelle CPU oder eine GPU fokussieren solltest. Meine Vermutung war jetzt, dass du die CPU (und letztendlich auch die GPU) nicht für sich alleine betreiben willst, sondern auch einen Rechner drumherum brauchst. Wenn du aber schon einen Rechner hast, dem nur noch die CPU fehlt, dann ist das was anderes.
Zweitens habe ich weiter Oben beschrieben, dass jemand bei Youtube eine
GPT4All-Installation auf einem MacMini M2 betreibt und damit bereits
Antworten im Bereich von 5...10s erhält.
Sofern man nichts trainieren will.
Drittens rühren die exorbitanten Leistungansprüche der öffentlich
zugänglichen KIs daher, dass dort tausende Anfragen gleichzeitig
verarbeitet und beantwortet werden, was bei einer lokalen Ausführung
nicht so ist.
Und eben daher, dass sie auch trainiert werden wollen, was erheblich mehr Rechenpower benötigt als die reine Anwendung eines neuronalen Netzes.
Beim Kernel und einer Compute-Aufgabe ist doch eher die Frage, wie gut
er skalieren kann, nicht wie gut er sein Geschäft parallelisiert. Also
wieviele Cores er überhaupt unterstützt.
Danke für den Hinweis
Ja, es gab mal in der c't einen Artikel darüber, wie gut Windows parallelisieren kann. Prinzipiell wohl erstmal schlecht, aber wie jetzt testen? Dann hatten die wohl einen aktuellen Java-Compiler gefunden, mit dem man entsprechende Parallelnutzung bzw. -"Betreuung" testen konnte.
(Linux dagegen war unproblematisch zum Thema Multicore. Hatte ja auch was, wenn einem beim OS-Start 12 Pinguine anlächeln. Skalierung ist die eine Sache, trickreiche Programmierung (also auch viel Erfahrung) die andere.)
Recht interessant sind auch die Zeitschriftenartikel, in denen Simon Peyton Jones über die Parallelität im GHC beschrieben hatte. Interessanter Name übrigens, wenn man an PyCuda denkt.
Im Studium hatten wir zum Stichwort KI Lisp als Programmiersprache. Von der Parallel-Performance am beeinduckensten fand ich bisher aber LAME.
Mich fasziniert die Idee, eigene Dokumente in die Wissensbasis
aufzunehmen und bei Anfragen darauf Bezug zu nehmen. Soll angeblich
möglich sein, indem man sie in einem reservierten Ordner ablegt. Ob und
wie das funktioniert weiss ich natürlich bisher nicht, sonst müsste ich
das nicht testen
Bevor du frustriert wirst: die eigenen Dokumente werden nicht "gelernt" im Sinne von: Gewichte im NN dadurch geändert, sondern landen (als "embedding") im Kontext, aus dem das Netz Antworten generiert.
GPT4All empfiehlt einen maximalen Kontext von 750 Tokens, wenn es rein auf der CPU läuft. Da muss das Dokument reinpassen, zu dem du Fragen stellen willst, und die Anfrage selber, und ggfs. der Gesprächsverlauf, wenn du "chatten" willst.
Du kannst natürlich auch das Netz mit deinen Daten nachtrainieren, das braucht aber wesentlich mehr Hardware (GPU mit >=32 GB Ram), Rechenzeit und Strom.
Beim Kernel und einer Compute-Aufgabe ist doch eher die Frage, wie gut
er skalieren kann, nicht wie gut er sein Geschäft parallelisiert. Also
wieviele Cores er überhaupt unterstützt.
Danke für den Hinweis
Ja, es gab mal in der c't einen Artikel darüber, wie gut Windows
parallelisieren kann. Prinzipiell wohl erstmal schlecht, aber wie jetzt
testen?
Ich habe da keine so guten Erfahrungen damit gemacht. Es ging eigentlich nur um zwei Prozesse, die jeweils einen Kern voll auslasten sollten, aber schon das hat es nicht richtig hinbekommen.
Das System hat nämlich beide immer auf einen gemeinsamen CPU-Kern gesteckt, und sie liefen dann jeweils nur halb so schnell wie sie könnten, während die anderen 11 Kerne Däumchen gedreht haben. Im Taskmanager kann man den Prozessen die CPU-Kerne zwar eigentlich auch manuell zuordnen, aber das hat schlichtweg gar nicht funktioniert. In diversen Foren, wo Leute von dem gleichen Problem berichtet hatten, kam immer die Antwort, dass das ja eh keiner braucht, weil Windows das doch selber viel besser kann…
Es ging dann aber, als ich ein eigenes Programm geschrieben habe, das die beiden Prozesse selber startet und ihnen dann fest die CPU-Kerne zuweist.
Das System hat nämlich beide immer auf einen gemeinsamen CPU-Kern
gesteckt
Solche Feinheiten gehören zu den Dingen, die sich bei Betriebssystemen auch mal ändern können. Weshalb manche Systeme mit neueren Versionen auch schneller werden können, indem der Kernel sich der Entwicklung der Prozessoren anpasst. Was keine triviale Aufgabe ist, weil Scheduler-Entscheidungen am besten funktionieren, wenn man die Zukunft perfekt vorhersagen kann.
Es gibt durchaus Szenarien, in denen das von dir beobachtete Verhalten Sinn ergibt. Wenn deine Threads extrem eng zusammenarbeiten, sehr häufig auf gemeinsamen Speicher zugreifen, kann es von Vorteil sein, wenn sie gemeinsame Caches nutzen. Und gerade bei AMDs Zen ist deshalb nicht unwichtig, ob Threads in der gleichen Core-Gruppe landen sollten.
Ein anderes von Windows über lange Zeit getriebenes Spiel war, bei Auslastung nur weniger Threads diese mit der Zeit über die verschiedenen Cores wandern zu lassen. Zum thermischen Ausgleich des Siliziums kann das sinnvoll sein. Das war in den letzten Jahren aber bei den Ryzen unangenehm aufgefallen, weil die Modelle mit zwei und mehr Prozessormodulen langsame und schnelle Module verbaut haben (*). Da ist diese Strategie ein Schuss ins Knie, denn der Kernel sollte statt dessen ihm vom System vorgegebene Prioritäten einhalten.
*: Wen hier Verarsche vermutet, liegt falsch. Wenn alle Cores unter Last sind, liegt die Taktfrequenz thermisch bedingt ohnehin unter dem Spitzenwert, weshalb man nicht mehr als ein Prozessormodul benötigt, das diesen Spitzenwert auch wirklich erreichen kann.
Es ging dann aber, als ich ein eigenes Programm geschrieben habe, das
die beiden Prozesse selber startet und ihnen dann fest die CPU-Kerne
zuweist.
Was dann bei der Migration vom Entwicklungssystem auf ein anders arbeitendes System gegenüber Entscheidungen des Betriebssystems auch von Nachteil sein kann. Yep, dieses Thema ist längst hoch komplex geworden.
Früher hatte man gerade einmal die Frage am Hals, wo bei den heterogen aufgebauten NUMA-Systemen der Speicher in Relation zum ihn verwendeten Prozess liegen sollte. Und das betraf meist nur Systeme mit mehreren CPU-Sockeln. Inwieweit es sinnvoll sein kann, da irgendwann im vollen Galopp umzuräumen (siehe Linux numad). Heute hat man das schon in besseren Client-Prozessoren am Hals, mit höchst unterschiedlichen Latenzen. Die Betriebssysteme sind sicherlich noch nicht optimal, das Thema lebt.