Bericht Intel APO, iBOT, IPPP & Co erklärt: Softwaretechnologien für bis zu 24 % höhere CPU-Leistung

Volker

Ost 1
Teammitglied
Registriert
Juni 2001
Beiträge
19.870
  • Gefällt mir
Reaktionen: CountSero, Zensored, Aliosy und 8 andere
Hat es dabei irgend welche Vorteile eine Intel gpu zu nutzen? Kann man diese Optimierung nicht stattdessen die Spiele Entwickler machen lassen statt den Endnutzer? Für ältere Titel wie tombraider die keiner mehr weiter entwickelt natürlich interessant.
 
Sehr interessante Technik und Anwendung von iBOT und auch vorallem in CPU Limited szenen ein extremen Performance anstieg.
Muss ich mich mal bisschen reinfuchsen - kannte bis dato PGO,BOLT,Autofdo und co, aber das die Binary nach der Compilation ohne relocations verändert werden kann scheint sehr cool zu sein. Denke, dies brauch spezifische Integrationen im BIOS/Microcode.


icetom schrieb:
Hat es dabei irgend welche Vorteile eine Intel gpu zu nutzen? Kann man diese Optimierung nicht stattdessen die Spiele Entwickler machen lassen statt den Endnutzer? Für ältere Titel wie tombraider die keiner mehr weiter entwickelt natürlich interessant.
Theoretisch würde dies funktionieren, aber diese Profile müssen bestenfalls für jede CPU/GPU gemacht werden - eventuell sieht man noch Verbesserungen, wenn man es für eine bestimmite Generation macht aber so wie es aussieht mach Intel diese Profile für jedes Game und CPU einzeln.

Game Developers machen sowas nicht und haben vermutlich dafür auch keine Zeit.
 
Verändert das Tool die Spieledateien? Vielleicht klappt es deshalb nur mit alten Spielen, weil sonst der Kopierschutz zuschlägt?
 
Die Anpassung war dabei definitiv nicht so umfangreich, dass die CPU-Maske dafür erneuert werden musste
Wie soll denn das bitte gehen?
Logischer wäre: Die Funktion war schon drin, wird aber per Firmware limitiert.
 
  • Gefällt mir
Reaktionen: Mar1u5
Ich persönlich bin kein Fan von solchen Software-Lösungen. Um davon zu profitieren, muss jede Anwendung einzeln optimiert werden, d.h. ältere Software, die nicht mehr weiterentwickelt wird, wird die Optimierungen nie bekommen und sobald die nächste CPU-Generation draußen ist, muss ich befürchten, dass für die von mir gekaufte Gen nicht mehr optimiert wird. Zumal sich gerade bei Spielen die wenigsten Devs die Mühe machen werden für eine einzelne CPU-Reihe eine Extrawurst zu braten.

CPUs müssen imho "einfach funktionieren". Wo es vielleicht nochmal interessant wird, sind ISA-Erweiterungen bzw. Neuausrichtungen, wie sie afaik mit Nova Lake kommen sollen. Um dort von Neuerungen profitieren zu können, müssen bestehende Binaries neu kompiliert werden. Vielleicht ist dieser Vorstoß von Intel auch eine Vorbereitung darauf, wer weiß.
 
"Bis zu" ist typischer Werbesprech, wo man sich wundert, weshalb sowas 1:1 in die Überschrift übernommen wird.

Und sowas ...
C.J. schrieb:
Ich persönlich bin kein Fan von solchen Software-Lösungen. Um davon zu profitieren, muss jede Anwendung einzeln optimiert werden, d.h. ältere Software, die nicht mehr weiterentwickelt wird, wird die Optimierungen nie bekommen und sobald die nächste CPU-Generation draußen ist
dauert ewig. Das wird nichts.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Shadow86
C.J. schrieb:
Ich persönlich bin kein Fan von solchen Software-Lösungen. Um davon zu profitieren, muss jede Anwendung einzeln optimiert werden, d.h. ältere Software, die nicht mehr weiterentwickelt wird, wird die Optimierungen nie bekommen und sobald die nächste CPU-Generation draußen ist, muss ich befürchten, dass für die von mir gekaufte Gen nicht mehr optimiert wird. Zumal sich gerade bei Spielen die wenigsten Devs die Mühe machen werden für eine einzelne CPU-Reihe eine Extrawurst zu braten.

Hast du natürlich komplett Recht mit. Man sollte die Optimierungen nicht als Maßstab nehmen für einen Kauf einer CPU. Aber als netten Bonus kann man es doch trotzdem gerne mitnehmen. Finde es immer wieder erstaunlich, was Software-Optimierungen ausmachen können.
 
@Volker Also wenn ich mir Folie 21 am Ende Anschaue, dann will Intel sagen: "Hey wir haben LTO+PGO für Windows-Spiele erstellt." Das ist bei GCC Compiles schon längst gang und gebe, aber Immerhin kommt es.

Ich nehme an Intel hat von seinem Compiler oneAPI LTO+PGO auf Windows portiert und das optimiert dann die binaries, mehr ist es nicht.

Das ist für HPC-Anwendungen die man eh immer selbst Compiled standart, eben weil es Performance "ohne Arbeit" bringt. GCC , LLVM, AOCC, oneAPI und selbst MSVC können das.

Interessant wird die Sache wenn man es mit SPEC-CPU Vergleicht, da ist das Benchen ohne PGO und LTO quasi hoffnungslos. Da erreicht man teilweise nur 50% der Leistung von den Herstellerbenchmarks.

Das ist aber nicht Weltbewegendes, sondern gleicht nur schlechten Code aus ^^ Es ist eher erschreckend, das manche Spiele auf einmal 30% + sehen, wegen LTO, was die meißte Performance bringt, ohne großen mehraufwand.

Das müsste eher was sein, was dann Epic/Unity in die Engines einbauen könnten, damit die Binaries optimiert sind. Aber man sieth ja auch gut, das Unreal Engine 5, gerade am Anfang mit der Performance extreme Probleme hatte. Die haben sie ja mit CDPR dann für Witcher 4 gefixed und neue Spiele mit neuer Unreal Engine 5 sind deutlich flotter.

Ich finde es interessant, das die Spieleengines erst Jahre später nachziehen, nachdem die Compiler das alle längst können. Evtl. liegts aber auch am extrem breiten HW-Support und sie müssen die Parameter dann für jede Konsole (Xbox, PS 4/5, Switch 1/2) anpassen, gerade weil vieles erst bei x86 kommt und dann zu AARCH64, RISC-V usw. wandert.
 
Zuletzt bearbeitet:
„Hohe FPS-Gewinne sind drin*“

Was bedeutet das Sternchen? Habe die Auflösung nicht gefunden ^^
 
TZUI1111 schrieb:
@Volker Also wenn ich mir Folie 21 am Ende Anschaue, dann will Intel sagen: "Hey wir haben LTO+PGO für Windows-Spiele erstellt." Das ist bei GCC Compiles schon längst gang und gebe, aber Immerhin kommt es.

Ich nehme an Intel hat von seinem Compiler oneAPI LTO+PGO auf Windows portiert und das optimiert dann die binaries, mehr ist es nicht.

Das ist für HPC-Anwendungen die man eh immer selbst Compiled standart, eben weil es Performance "ohne Arbeit" bringt. GCC , LLVM, AOCC, oneAPI und selbst MSVC können das.

Das ist aber nicht Weltbewegendes, sondern gleicht nur schlechten Code aus ^^ Es ist eher erschreckend, das manche Spiele auf einmal 30% + sehen, wegen LTO, was die meißte Performance bringt, ohne großen mehraufwand.

Das müsste eher was sein, was dann Epic/Unity in die Engines einbauen könnten, damit die Binaries optimiert sind. Aber man sieth ja auch gut, das Unreal Engine 5, gerade am Anfang mit der Performance extreme Probleme hatte. Die haben sie ja mit CDPR dann für Witcher 4 gefixed und neue Spiele mit neuer Unreal Engine 5 sind deutlich flotter.

Ich finde es interessant, das die Spieleengines erst Jahre später nachziehen, nachdem die Compiler das alle längst können. Evtl. liegts aber auch am extrem breiten HW-Support und sie müssen die Parameter dann für jede Konsole (Xbox, PS 4/5, Switch 1/2) anpassen, gerade weil vieles erst bei x86 kommt und dann zu AARCH64 wandert.
Nein, das ist mehr wie BOLT und nicht PGO.
https://github.com/llvm/llvm-project/blob/main/bolt/README.md

Windows DLLs erhalten Relocations, diese können dann genutzt werden mit deren Opimizer um die Layouts zu verbessern.


Dies wird nicht von den Game Studios recompiled mit den Intel profil.
 
  • Gefällt mir
Reaktionen: TZUI1111
@ptr1337 Gibts da auch ein Projekt für GCC?
 
Dass Technologien wie APO die CPU-Performance auch unter Linux massiv erhöhen könnten, sagt ja unter anderm auch Peter Jung vom CachyOS.

Das Problem ist, dass deren Profile nicht öffentlich zugänglich sind und man für jede CPU manuell profilieren und testen müsste - ein enormer Aufwand.

Ich sehe da durchaus großes Potenzial, wenn Intel denn wollen würde.
 
  • Gefällt mir
Reaktionen: petepow und ptr1337
TZUI1111 schrieb:
@ptr1337 Gibts da auch ein Projekt für GCC?
LLVM wird nur als Backend für BOLT genutzt. Man kann BOLT für egal welche applikation nutzen zum profilen und dann post link optimization machen, aber man muss die Profile mit branch sampling machen. Das Guide ist relativ gut gemacht. Gibt auch ein paar Papers :)
Ergänzung ()

SVΞN schrieb:
Dass Technologien wie APO die CPU-Performance auch unter Linux massiv erhöhen könnten, sagt ja unter anderm auch Peter Jung vom CachyOS.

Das Problem ist, dass deren Profile nicht öffentlich zugänglich sind und man für jede CPU manuell profilieren und testen müsste - ein enormer Aufwand.

Ich sehe da durchaus großes Potenzial, wenn Intel denn wollen würde.
Genau, generell ist dies schon möglich zu machen via Task Pinning oder sched-ext scheduler. Generell gibt es schon scheduler, wie bpfland und Cosmos welche dies richtig handlen, aber halt nicht per Game basis.

Ohne massiven Aufwand die Profile selbst zu machen für APO wird das nichts bringen leider.
 
  • Gefällt mir
Reaktionen: SVΞN
Ayo34 schrieb:
Finde es immer wieder erstaunlich, was Software-Optimierungen ausmachen können.

SVΞN schrieb:
Das Problem ist, dass deren Profile nicht öffentlich zugänglich sind und man für jede CPU manuell profilieren und testen müsste - ein enormer Aufwand.
Man kann auf Software-Seite eine Menge machen, gar keine Frage. Das Problem ist aber, dass so eine anwendungsspezifische Optimierung über händisch gepflegte Profile nicht nachhaltig ist und mit jeder neuen CPU und jeder neuen Software wieder neu gemacht werden muss. Aus dem gleichen Grund fand ich damals die von AMD eingeführte Software-Lösung für asymmetrische CCD-Konfigurationen (7950X3D, 9950X3D) eher enttäuschend.
 
@C.J. Es ist auch möglich, im Falle von PGO (Profile Guided Optimization) und AutoFDO generische Profile zu erstellen, welche dann beim kompilieren von Software direkt zu dem Compiler passed werden kann.

Google macht dies schon massiv in Chromium, Chrome, Android (übliche apps und systemkomponenten) sowie dem Android Kernel seit kurzem.
CachyOS macht dies ebenfalls für Compiler, Compression Bibl. und ebenfalls kernel - aber man muss halt Zeit investieren.

Windows, sowie Spiele hängen dort massiv hinterher.


Software-Lösung für asymmetrische CCD-Konfigurationen (7950X3D, 9950X3D) eher enttäuschend.


Du brauchst das ebenfalls bei einem 9950X und 9900X. Hat nix mit dem 3D Cache zu tun. Das Problem ist die Core to Core Latency, z.B wenn ein Game die Cores verteilt auf 2 CCDs nutze hast du, vorallem bei Zen5 eine extreme Latenz.

Es wird im Computing immer Software sowie Scheduling Lösungen geben müssen.
 
  • Gefällt mir
Reaktionen: C.J.
Kopierschutz und Anti-Cheat werden sich richtig freuen, wenn da offline oder on-the-fly Instruktionen verändert werden.

Oder auch wenn das auf sicherheitskritische Software (zB Kryptografie) angewandt werden sollte, bei der man explizit fixed-time-execution haben will, wo aktuell den Compilern mit viel Aufwand das Optimieren verboten wird.

Bin gespannt.
 
Zuletzt bearbeitet:
TZUI1111 schrieb:
@Volker Also wenn ich mir Folie 21 am Ende Anschaue, dann will Intel sagen: "Hey wir haben LTO+PGO für Windows-Spiele erstellt." Das ist bei GCC Compiles schon längst gang und gebe, aber Immerhin kommt es.

Also gerade profile-guided optimization ist viel Aufwand fuer die Programmierer und wird daher eher selten gemacht, ausser fuer benchmarketing. Link-time optimization verlaengert die Zeit, bis man Testen kann, das will man in der Entwicklung auch nicht inbedingt haben. Und wenn dann (aus gcc-Maintainer-Sicht) ein Bug sichtbar wird, der ohne LTO unsichtbar ist, wird's halt einfach abgeschaltet. Oder gleich gar nicht eingeschaltet, weil man solche Bugs nicht erst beim Kunden auftauchen sehen will.

Ich nehme an Intel hat von seinem Compiler oneAPI LTO+PGO auf Windows portiert und das optimiert dann die binaries, mehr ist es nicht.

Es wird leider sehr wenig ueber die Binaeroptimierung erklaert.

Insbesondere, ob ihre Binaeroptimierung statisch oder dynamisch ist; wenn sie statisch ist, dann muessen sie (falls es profile-guided ist) tatsaechlich Profiling im Vorhinein machen, was erklaeren wuerde, warum es nur fuer manche Anwendungen geht. Aber auch bei dynamischer Optimierung muessen sie aufpassen, dass die Optimierung nicht mehr Zeit frisst als sie bringt, was auch eine Erklaerung fuer die begrenzte Auswahl and Anwendungen waere.

Weiters erklaeren sie nicht, ob sie tatsaechlich den Binaercode optimieren (dann koennen sie nicht solche Dinge machen, die bei gcc (aus gcc-Maintainer-Sicht) vorher unsichtbare Bugs sichtbar macht), oder wildere Sachen wie eben gcc. Wenn letzteres, waere das auch eine Erklaerung, warum sie nur wenige Programme freigeben.

Interessant wird die Sache wenn man es mit SPEC-CPU Vergleicht, da ist das Benchen ohne PGO und LTO quasi hoffnungslos. Da erreicht man teilweise nur 50% der Leistung von den Herstellerbenchmarks.

Tja, PGO und LTO sind halt Benchmarketing-Features, die werden natuerlich fuer "relevante" Benchmarks wie SPEC CPU hingetrimmt, und bringen dort viel und anderswo weniger. Siehst ja auch hier. SotTR hui, CP2077 naja, und dabei zaehlt CP 2077 zu den unterstuetzten Spielen.

Ach ja, dass Binary Optimization auf anderen juengeren Intel-Prozessoren nicht aehnlich gut oder schlecht funktioniert, ist voellig unplausibel. Da geht's nur darum, die Plus-Prozessoren zu vermarkten.
 
  • Gefällt mir
Reaktionen: CountSero
Ich finde die neuen Marketing-Folien häßlich. Das Hintergrund-Blau zu grell, die Kontraste zu niedrig, die Kursiv-Schrift ist und und war schon immer peinlich, und die Schattenfunktion in Powerpoint hat scheinbar auch niemand gefunden.

Das sind kein Folien, über denen ich stundenlang brüte, um sie zu verbessern, sondern welche, die ich mal eben schnell hin-"rotze", um sie dann nie wieder zu sehen.

Auch der Inhalt, insbesondere die Presseantworten, klingt eher so, als hätten Marketing und Controlling einen super Weg gefunden, um irgendwas tolles ohne hohe Kosten zu vermarkten.

Nun ja, jeder, wie er kann.
 
Zurück
Oben