Door Tomas Hochstenbach

Redacteur

Fors meer fps in games met nieuw foefje?

Intel Application Optimization Benchmark

30-10-2023 • 06:00

114

Intel APO-benchmarks

Voorafgaand aan de release van de Core i5 14600K, i7 14700K en i9 14900K liet Intel al benchmarks zien van Application Optimization, een nieuwe functie die tot serieuze prestatiewinsten in games moet leiden. Het lukte de fabrikant niet om de benodigde drivers op tijd klaar te hebben voor de release, maar inmiddels kun je met de functie aan de slag. Is APO inderdaad een gamechanger?

Voor wie het niet tot pagina twee van onze Raptor Lake Refresh-review geschopt heeft, eerst nog even een kleine recap. Application Optimization is een nieuw softwarebeleid dat moet helpen bij de allocatie van programmathreads aan het best passende type cores bij de 14th Gen Core-cpu's. Daarvoor heeft Intel al de hardwarematige Thread Director, die samenwerkt met de scheduler in Windows 11, maar in sommige programma's haalt die niet het onderste uit de kan.

Application Optimization werkt alleen met software die door Intel is onderzocht en waarvan is vastgesteld dat de coreverdeling standaard niet optimaal verloopt. Tot nu toe zijn dat alleen twee games: Rainbow Six Siege en Metro Exodus. De nieuwe functie werkt via de Intel Dynamic Tuning Technology-driver, die tot nu toe vooral door grote pc-fabrikanten werd gebruikt om de prestaties van de processor af te stemmen op de mogelijkheden die een systeem heeft voor koeling en stroomtoevoer. Bij veel desktopmoederborden staat DTT dan ook standaard uit.

Intel Application Optimization

Je hebt twee dingen nodig om aan de slag te gaan met APO. Om te beginnen heb je een bios nodig waarin je Intel Dynamic Tuning Technology kunt activeren; vaak is updaten naar de nieuwste versie daarvoor voldoende. Vervolgens heb je ook een DTT-driver nodig, die gek genoeg nergens te vinden is op de website van Intel, evenmin als een lijst met ondersteunde games trouwens. Wij pikten 'm op van de downloadsectie van dit ASUS-moederbord, maar konden de drivers vervolgens ook probleemloos op ons testbord van Gigabyte gebruiken. De set-upexecutable lijkt echter niet alle drivers te installeren; handmatig de mapjes langslopen om alle .inf-bestanden te installeren, bood soelaas. Na een succesvolle installatie en reboot moet je 'Intel Innovation Platform Manager and Processor Participant' kunnen zien in Apparaatbeheer, onder Systeemapparaten.

In principe staat APO daarna standaard aan, maar heeft het geen effect op programma's die niet op Intels lijst van ondersteunde games staan. Mocht je de functie aan en uit willen kunnen zetten zonder steeds naar het bios te hoeven booten, of zelfs per game willen kunnen inschakelen, dan kun je de Intel APO-app downloaden uit de Microsoft Store. Puur voor het functioneren ervan heb je die echter niet nodig.

Intel APO-app
Intel APO-app

Benchmarks

Al dat instelwerk later: kloppen Intels prestatieclaims een beetje? In Metro Exodus op Medium-settings stijgt de framerate zelfs nog veel harder dan de fabrikant zelf belooft. We meten een prestatiewinst van 19,2 procent ten opzichte van het resultaat in onze originele review, wat ruim voldoende is om de Ryzen 7 7800X3D van AMD in te halen. Ook in de frametimes steekt de 14900K met APO met kop en schouders boven de rest van het testveld uit.

  • 1920x1080 - Medium
  • 1920x1080 - Medium (99p)
  • 1920x1080 - Medium (99.9p)
Metro Exodus - 1920x1080 - Medium
Processor Gemiddelde framerate in fps (hoger is beter)
Intel Core i9-14900K met APO
316,4
AMD Ryzen 7 7800X3D
299,3
AMD Ryzen 7 7700X
274,8
AMD Ryzen 5 7600X
267,3
Intel Core i9-14900K
265,5
Intel Core i7-14700K
263,1
AMD Ryzen 9 7900X3D
261,8
Intel Core i9-13900K
260,4
AMD Ryzen 9 7900X
257,8
AMD Ryzen 7 5800X3D
256,7
AMD Ryzen 9 7950X3D
255,3
Intel Core i7-13700K
254,4
Intel Core i5-14600K
252,2
AMD Ryzen 9 7950X
247,2
Intel Core i5-13600K
242,2

Op Ultra-settings worden de verschillen wat kleiner, maar met APO scoort de 14900K alsnog bijna 12 procent hoger dan zonder. Dat maakt hem 7 procent sneller dan de 7800X3D in plaats van 4 procent langzamer.

  • 1920x1080 - Ultra
  • 1920x1080 - Ultra (99p)
  • 1920x1080 - Ultra (99.9p)
Metro Exodus - 1920x1080 - Ultra
Processor Gemiddelde framerate in fps (hoger is beter)
Intel Core i9-14900K met APO
228,1
AMD Ryzen 7 7800X3D
212,7
Intel Core i9-14900K
204,1
Intel Core i9-13900K
200,9
Intel Core i7-14700K
200,0
AMD Ryzen 9 7900X3D
197,8
AMD Ryzen 7 7700X
196,7
Intel Core i7-13700K
196,3
AMD Ryzen 5 7600X
195,4
Intel Core i5-14600K
194,2
AMD Ryzen 9 7950X3D
193,2
AMD Ryzen 9 7900X
191,0
AMD Ryzen 7 5800X3D
190,9
AMD Ryzen 9 7950X
189,0
Intel Core i5-13600K
186,3
Metro Exodus - 1920x1080 - Ultra (99.9p)
Processor Gemiddelde tijd in ms (lager is beter)
AMD Ryzen 9 7950X
10,1
AMD Ryzen 9 7900X
10,3
AMD Ryzen 9 7950X3D
10,6
Intel Core i9-14900K met APO
10,7
Intel Core i7-13700K
10,7
Intel Core i5-14600K
10,7
Intel Core i5-13600K
10,9
AMD Ryzen 5 7600X
11,1
Intel Core i9-13900K
11,1
AMD Ryzen 7 7700X
11,5
AMD Ryzen 9 7900X3D
11,6
Intel Core i7-14700K
11,7
Intel Core i9-14900K
11,8
AMD Ryzen 7 7800X3D
13,7
AMD Ryzen 7 5800X3D
14,1

Rainbow Six Siege stamt uit 2015 en maakt daarom allang geen deel meer uit van onze standaard testsuite, maar aangezien dit de enige andere game is waar APO in werkt, hebben we het spel toch even getest met de 14900K en AMD's 7800X3D. Op Medium-settings wint de 14900K bijna 13 procent aan prestaties dankzij APO, maar daarmee blijft hij nog net een procentje langzamer dan de 7800X3D.

  • 1920x1080 - Medium
  • 1920x1080 - Medium - 99p
  • 1920x1080 - Medium - 99.9p
Rainbow Six Siege - 1920x1080 - Medium
Processor Gemiddelde framerate in fps (hoger is beter)
AMD Ryzen 7 7800X3D
728,5
Intel Core i9-14900K met APO
721,5
Intel Core i9-14900K
639,4
Rainbow Six Siege - 1920x1080 - Medium - 99p
Processor Gemiddelde frametime in ms (lager is beter)
AMD Ryzen 7 7800X3D
2,2
Intel Core i9-14900K met APO
2,2
Intel Core i9-14900K
2,4
Rainbow Six Siege - 1920x1080 - Medium - 99.9p
Processor Gemiddelde frametime in ms (lager is beter)
AMD Ryzen 7 7800X3D
2,6
Intel Core i9-14900K met APO
2,7
Intel Core i9-14900K
2,9

Ook op Ultra-settings is de prestatiewinst nog altijd 12 procent. Dat is in dit scenario wel net genoeg om de 7800X3D te verschalken, zowel in fps als in de 99p-frametimes.

  • 1920x1080 - Ultra
  • 1920x1080 - Ultra - 99p
  • 1920x1080 - Ultra - 99.9p
Rainbow Six Siege - 1920x1080 - Ultra
Processor Gemiddelde framerate in fps (hoger is beter)
Intel Core i9-14900K met APO
696,9
AMD Ryzen 7 7800X3D
684,5
Intel Core i9-14900K
622,4
Rainbow Six Siege - 1920x1080 - Ultra - 99p
Processor Gemiddelde frametime in ms (lager is beter)
Intel Core i9-14900K met APO
2,2
AMD Ryzen 7 7800X3D
2,3
Intel Core i9-14900K
2,5
Rainbow Six Siege - 1920x1080 - Ultra - 99.9p
Processor Gemiddelde frametime in ms (lager is beter)
Intel Core i9-14900K met APO
2,6
AMD Ryzen 7 7800X3D
2,7
Intel Core i9-14900K
3,0

Voorlopige conclusie

Zowel relatief als absoluut gezien zijn de prestatiewinsten die we meten met de nieuwe Application Optimization-functie indrukwekkend. In onze testresultaten toppen die op respectievelijk 19 procent in Metro Exodus en 80fps in Rainbow Six Siege. Dat gaat wel om scenario's waarin je ook zonder APO al uitstekende prestaties haalde, maar tegen gratis extra prestaties zal nooit iemand nee zeggen. Anderzijds, dat deze prestaties blijkbaar in de processor zaten, kan ook betekenen dat er tot nu toe iets goed misging in de corescheduling voor deze games.

Dat Intel deze functie net niet op tijd af had om haar mee te kunnen nemen in de releasereviews, is natuurlijk een flater. Ook nu heerst er nog onduidelijkheid over hoe je de functie kunt gebruiken. Op de site van Intel is geen informatie te vinden, evenmin als de drivers zelf. De set-up die door een moederbordfabrikant is verspreid, installeert de drivers initieel maar voor de helft. En hoewel Intel er voorafgaand aan de release op hintte dat in de toekomst meer games kunnen profiteren van APO, blijft de teller voorlopig hangen op een schamele twee ondersteunde games.

Vooralsnog lijkt APO alleen te worden ondersteund op de Core i7- en i9-modellen van de veertiende generatie, en dus niet op de Core i5 14600K. 'Lijkt', want ook dit maakt Intel nog nergens expliciet. Erger is wat mij betreft dat ook eigenaars van een processor uit de twaalfde of dertiende generatie voorlopig buiten de boot vallen, terwijl die chips technisch vrijwel identiek zijn aan die uit de veertiende. Als er met een softwarematig schedulingtrucje veel betere prestaties te behalen zijn, moet Intel dat niet gebruiken voor een mooie marketingslide over de veertiende generatie, maar om de prestaties van iedere Intel-cpu met een combinatie van P- en E-cores te verbeteren.

Vanzelfsprekend hebben we Intel gevraagd of het van plan is om APO eenvoudiger beschikbaar te stellen, en ondersteuning toe te voegen voor meer processors en games. Het lukte de processorontwerper niet om daar voor het weekend op te reageren, maar als we een reactie ontvangen, zullen we dit artikel bijwerken.

Update, 31-10: Intel heeft Tweakers laten weten dat het niet van plan is om APO beschikbaar te maken voor processors uit de twaalfde en dertiende generatie Core. Ook de Core i5 14600K(F) wordt niet ondersteund. Wel is Intel van plan om ondersteuning voor meer games toe te voegen.

Reacties (114)

114
114
66
5
0
39
Wijzig sortering
Is deze prestatiewinst dan niet iets wat we standaard terug gaan zien wanneer compilers verbeterd worden? Dan heb je geen APO trucendoos nodig van Intel.
Waarschijnlijk niet, omdat de benodigde gegevens niet compile-time beschikbaar zijn. Om te weten hoe je threads moet verdelen moet je weten welke threads het zwaarste zijn, dus welke functies door welke threads worden uitgevoerd en welke functies het zwaarste zijn. Beiden kunnen daarbij afhangen van data die op verschillende manieren in het geheugen wordt geladen, en zelfs data die tijdens het gamen kan ontstaan (de game-state van een strategy-game bijvoorbeeld).

Daar komt nog bovenop dat deze analyse vrijwel zeker handmatig gedaan is, niet volledig geautomatiseerd. Een thread die niet optimaal presteert kan een probleem zijn maar dat hoeft niet, dat weet je pas als er later iets op die thread gaat blocken. Dat hoeft niet heel moeilijk te zijn maar complex genoeg om het niet volledig te kunnen automatiseren.

Als laatste heeft een applicatie maar beperkt invloed op thread scheduling, dat doet het OS. Dus er zijn echt wat hacks nodig om deze optimalisaties überhaupt aan de praat te krijgen.

Al met al: dit bereiken met statische analyse is niet twee stappen te ver in techniek, maar duizend.

Dynamisch kan het wel, gewoon tijdens runtime bekijken welke threads het zwaar hebben. Maar dat is suboptimaal, en dat is precies wat de scheduler van het OS nu ook al doet.

Wat dat betreft heb ik hier gemengde gevoelens bij. 20% prestatiewinst is heel mooi, maar het heeft een mate van micro-optimaliseren nodig die voor een programmeur letterlijk niet te doen is. Letterlijk, omdat je deze mate van controle over je threads scheduler helemaal niet hebt. Dat is bewust afgeschermd omdat het in het algemeen geen goed idee is als je op dit niveau met je tengels aan de scheduler zit, dat laat je aan het OS over. CPU's worden met hun heterogene multicore-architectuur (e-cores en p-cores, cores met en zonder 3D-cache, etc.) schijnbaar zoveel complexer dat dat 20% aan prestaties kost.

[Reactie gewijzigd door bwerg op 22 juli 2024 17:20]

Goede uiteenzetting. Ik heb daaraan toe te voegen dat ik wel denk dat we de heterogene architectuur blijven houden. Want blijkbaar loont onderscheid, dat zie je ook al generaties lang bij mobiele telefoons, en zowel AMD als Intel hebben hun eigen heterogene multicore, dus geheel toeval dat hier iets te behalen valt is het niet. De redenatie bij mobiel is anders, maar feit is dat een one-size-fits-all-aanpak gewoon niet het onderste uit de kan haalt, en dat is nu eenmaal wat we willen. De allersnellste processor.

Het zou echter fijn zijn als we dit wel zo kunnen regelen dat het simpel genoeg is voor het OS om te begrijpen welke core de "sterke" is en welke de zwakkere, ongeacht de specifieke applicatie. En dan wellicht wel onderscheid in games vs productivity, want games gedragen zich toch altijd net wat anders qua optimalisatie (3D cache heeft daar al meer invloed tov productivity).

Ik denk dat ze hier nog wel stappen kunnen gaan maken maar het lijkt eerst een stap richting een proprietary oplossing, en dat is inderdaad jammer. Maar Intel heeft ook al aangegeven Hyperthreading mogelijk te laten vallen, omdat het gewoon te complex wordt. Want dat is ook alweer onderscheid voor de scheduler; ik denk dat er genoeg scenarios zijn waarin een proces op een E core sneller is (E cores zijn zonder hyperthreading) dan een proces dat samen met een ander proces netjes 50-50 gehyperthread wordt op een P core. Bij games weet ik dat van oudsher hyperthreading niet altijd enorme winsten oplevert, dus het zou op OS/scheduler-niveau eenvoudiger zijn om dan gewoon een setje 'echte' P cores te hebben (ipv P threads) en daarachter een setje langzamere E cores.

[Reactie gewijzigd door A Lurker op 22 juli 2024 17:20]

Kan ook nog wel eens grotendeels marketing zijn dit, want ik zie hierin voorlopig geen voordeel voor welke gamer dan ook. In dit artikel is namelijk de laagste FPS maar liefst boven de 200 FPS. Dat is al op ultra quality settings. Ik durf te wedden dat game devs op dat punt weinig interesse meer hebben in verdere CPU optimalisaties, laat staan voor vreselijk nieuwe CPU architecturen met speciale soorten cores en zo meer. Alles boven de 120/144 FPS is al zodanig luxe, laat staan op zo een hoge quality setting, dat is puur kunstmatig te noemen van Intel.
Als een andere game CPU bound niet boven de 60 FPS komt en met deze Intel optimalisaties wel mooi de 60 FPS laat zien dan is dat super en neem ik oprecht alles als eerste terug. Misschien juist instap CPU testen ipv de x900 high end?
Echter deze twee titels als launch titels voor deze tech, en voorlopig niets waar een 60FPS gamer iets aan heeft, dat is toch wel iets om minimaal wat gereserveerd bij te blijven. De marketing afdeling heeft heus om spectaculair nieuws gevraagd toen ze hierin gingen investeren. Eerst wat winst zien op een plek waar het real-life verschil maakt, en dan praten we verder Intel...

[Reactie gewijzigd door OruBLMsFrl op 22 juli 2024 17:20]

Al met al: dit bereiken met statische analyse is niet twee stappen te ver in techniek, maar duizend.
Maar met een omweggetje kun je het met euh. niet-statische analyse doen; de Go programmeertaal heeft / krijgt binnenkort Profile-Guided Optmization, dwz, je kunt runtime profiling data weer terug je compiler instoppen zodat deze kan optimaliseren op echt gebruik: https://go.dev/blog/pgo. Ik weet zelf weinig van game development en C/C++ af, dus ik weet niet of zoiets daar al in zit.
Wees wel bewust van het feit dat de Intel CPU 2 tot 3 keer zoveel stroom kost vergeleken met de 7800X3D.

Het is een mooie techniek die alleen echt nuttig is als de koeler de processor goed kan koelen zonder throttling. Ik praat dan over een 360mm AIO koeler die het zelfs nog moeilijk heeft met deze Intel. De 7800X3D is heel makkelijk koel te houden en met een 240mm AIO is het nog kinderspel.

Nu kun je wel gaan undervolten en dat zal wellicht wat helpen, maar makkelijk koelen is zelfs dan nog erg moeilijk. Ook ga je met Intel de stroomkosten voelen.

Nu ben ik géén fanboy van een bepaald kamp, maar Intel zou de kant op moeten dat ze zuiniger worden want anders zal het over een paar generaties een hele sterke Peltier koeling nodig hebben.

Goed nieuws? Jazeker, maar tegen een hoge prijs.
Thread scheduling is een taak van het OS, daar heeft de compiler geen invloed op. Misschien is het nog mogelijk om "hints" op te nemen die het OS kan gebruiken om thread scheduling te optimaliseren maar meer dan dat zit er denk ik niet in

[Reactie gewijzigd door codeneos op 22 juli 2024 17:20]

Hints opnemen kan. Maar dan moeten verschillende type cores wel eerst gestandadiseerd worden. Ik denk dat het daar nog veel te vroeg voor is. Eerst maar eens zorgen dat deze techniek van de grond af komt.
Of omdraaien: label je thread met: "compute", "io", "low latency", "batch" etc. Dan kan het OS er pas echt wat mee. Dit via een of andere API aan de applicatie overlaten klinkt als onverstandig.
Dit dacht ik ook. Kan bijvoorbeeld Ubisoft deze prestatiewinst niet onderzoeken, om R6 Siege standaard al beter gebruik te laten maken van de verschillende cores?
Het zou mooi zijn wanneer zoiets in de engines gebakken is zodat je er geen omkijken naar hebt. Ik kan me echter voorstellen dat gameontwikkelaars er niet op zitten te wachten handmatig aan de slag te mogen gaan om voor Intels onorthodoxe CPU design te gaan optimaliseren. Zeker voor games die al af zijn een geen “live service” zijn.
Aangezien de leeftijd van Rainbow Six Siege lijkt me dat een spel waar Ubisoft weinig tot geen ontwikkeltijd meer zal insteken. Dus ik verwacht niet dat jouw idee uitgevoerd gaat worden.

Trouwens de framerates die ik in het artikel zie zijn al dusdanig hoog, dat ik niet verwacht dat iemand de verschillen tussen wel en niet core geoptimaliseerd gaat merken.
Het wordt uit het artikel ook niet duidelijk waarom dit dan niet in de thread director en Windows scheduler zit, dat lijkt me als leek logischer dan als Intel losse software uit te brengen die veel mensen waarschijnlijk over het hoofd zien, terwijl de impact blijkbaar groot is.

Zijn er zwaarwegende redenen waarom dat niet mogelijk is?

Of anders, zoals jij zegt, waarom niet in de games zelf verbeteringen doorvoeren?

[Reactie gewijzigd door AllesIsVoorbij op 22 juli 2024 17:20]

Blijkbaar heeft Intel dit op het laatste moment bedacht. Maar als het (al) in Windows zou zitten, kan AMD er mogelijk ook voordeel uit halen, wat nadelig zou zijn voor Intel. Daarnaast, als het ook zou werken op oudere generaties, zou er niet genoeg aandacht zijn voor de promotie van de 14e generatie. Door een aparte app en driver te gebruiken, behoudt Intel controle en kan het kiezen welke hardware en toepassingen ze ondersteunen. Maar er zal waarschijnlijk een goede reden zijn, op basis van planning en technische vereisten, waarom het op deze manier moet gebeuren.
AMD heeft geen verschillende cores
Dat klopt op zich, maar in de X3D varianten hebben sommige CCX core clusters wel meer cache dan andere. Ook AMD zal dus iets (moeten) hebben dat Windows (of linux) vertelt welke core de snelste is. denk ik.
In de ryzen software zie je wel de best presterende core. Die core klokt het hardst, dat is vziw het enige verschil.
Dat is informatie die de CPU via CPPC aan windows ontsluit. De optie moet wel aanstaan in de BIOS. Windows maakt hier al gebruik van bij het scheduling. Het verschil tussen AMD en Intel is dat bij Intel de P- en E-Cores een andere architectuur hebben.

Sommig workloads zullen beter draaien onder een p-core en voor andere workloads zal het niet uitmaken. Dus afhankelijk van wat de workload is moet windows de thread over schakelen van een e-core naar een p-core. Wellicht dat windows die informatie nu niet heeft en daardoor de verschillende core types in de intel CPU niet optimaal kan benutten. Als of je de metselaar vraag om en schilderen en de schilder om te metselen. Helaas is intel niet heel duidelijk over wat APO precies doet en het feit dat er maar 2 games ondersteund worden is ook niet zalligmakend.
En die 3D-cores draaien dan weer op een lagere kloksnelheid. Vanuit het oogpunt van prestaties heeft een 7950X3D wel degelijk verschillende cores.

Daar bovenop wil AMD in de toekomst ook meer naar een heterogene architectuur toe.

Bij AMD hebben de verschillende cores wel dezelfde architectuur, maar voor de prestaties maakt het niet uit of het prestatieverschil nou komt door architectuur, cache of kloksnelheid. Heterogeen is heterogeen.
Heeft ook niks met verschillende cores te maken, dit is gewoon specifieke Intel tuning om bepaalde P cores hoger te laten clocken en andere lager als compensatie. Dit werkt enkel met wat games die maar op enkele cores werken. De MS OS scheduler duwde die al op P-cores, alleen werken die P-cores random waardoor er geen ultra turbo op toegepast wordt.

Nu gaat APO omzeilen door ander P-cores niet te gebruiken en affinity te zetten op alleen die voor de game... maar niemand draaid ook maar iets anders antuurljik naast die game.... wat er voor de andere nog overschiet kwa boost of wat het doet met vcore, warmte etc wordt hier gewoon niet verder bekeken door de reviewers. Niet verder denken dan wat marketing lekker doorgeeft :+
Nog niet, volgende Ryzens hebben het wel. En dan is er nog the 3rd level 3D cache zoals aangegeven.
Leuk foefje van intel.Jammer dat alles met de hand gedaan moet worden en dat je niet zeg maar 1 instelling hebt voor meerdere games.Niet alles is beschikbaar.
berichtje geschreven met linux mint 21.2 met vmware workstation 17.x, gast systeem windows 11 x 64.

[Reactie gewijzigd door rjmno1 op 22 juli 2024 17:20]

Ik hoop dat iemand mij kan uitleggen waarom dit ingewikkelder is dan
>Detecteer dat een game draait
>Gooi de game op de P-cores
>Gooi ALLE andere dingen op de E-cores
>Geef P-cores 90% van de geheugenbandbreedte

Dat een optimizatie als deze nodig blijkt doet geloven dat het toch een complex probleem is maar ik kan me niet voorstellen hoe of waarom.
"Detecteer dat een game draait" - voor een specifieke game zou het nog lukken, maar in het algemeen is dat niet makkelijk. "Game" is nogal een breed begrip. En voor de situaties waarin dit uitmaakt, moet je naar de GPU kijken terwijl die hoogstwaarschijnlijk geen Intel GPU is. Windows zou't zelf beter kunnen, maar we hebben het hier over Intel die om Microsoft's beperkingen heen werkt.

"Gooi de game op de P-cores" - een CPU werkt niet met processen. Zelfde verhaal als hierboven, Intel niet Microsoft.

"Rest op E-cores" - zullen de streamers waarderen

"Geef P-cores 90% van de geheugenbandbreedte" - cores hebben geen geheugenbandbreedte. Dat is naar L3 cache.

Daarnaast, een niet onbelangrijk deel van de CPU tijd is ook nodig voor de GPU driver. Dat is niet eens een programma/applicatie, dat is kernel-mpode software.
Detecteer dat de GPU zwaar belast wordt dan ipv dat een game draait?

Edit: Sorry, ik had je reactie beter eerst volledig gelezen alvorens te reageren.

[Reactie gewijzigd door StGermain op 22 juli 2024 17:20]

Dat gaat niet. Want niet alle instructies zijn beschikbaar op de E-cores.

Het complexe probleem zit erin dat er ook IO bottlenecks zijn. Je kunt een thread draaien op een P core, een E core, en dan kun je ook nog meerdere threads per core hebben met hyperthreading. Maar dat laatste kan alleen als threads af en toe moeten wachten op IO.
Op welke cores de threads passen is kan echt verschil maken, en standaard zal er een soort round robin of heuristic analyse zijn.

Intel zal hier in dit voorbeeld met API een soort analyze hebben gemaakt en dan kan het de threads optimaal verdelen. Maar daarvoor moet er wel eerst een analyze zijn gedaan. Wellicht dat AI in de toekomst deze analyze voor jouw kan doen in Windows/Intel driver.
Dat gaat niet. Want niet alle instructies zijn beschikbaar op de E-cores.
Je denkt misschien aan AVX-512, maar die instructies zijn ook niet beschikbaar op P-cores. De hardware is er wel, maar Intel en Microsoft kregen Windows niet zo ver dat die om kon gaan met heterogene cores. Software kan zonder aankondiging vooraf een AVX-512 instructie op een thread uitvoeren, en als die thread toevallig op een E-core draait dan heb je een harde fault. (Illegal Instruction).
FP-16 instructies vallen ook terug naar FP-32, en die duren langer. (~2x langer)
Dat lijkt me niet: AVX512_FP16 is een extensie van AVX512 (het zit al in de naam). De CPUID van de P-cores rapporteert hetzelfde als van de E-cores: heel AVX512 is niet supported op deze CPU's, dus ook AVX512_FP16 niet.
Zoals jij omschrijft zou het 'slecht' zijn om software op de E-cores te schedulen, maar dat is niet per definitie zo. Binnen een game zijn er ook genoeg processen die beter op zo'n core kunnen draaien maar waarschijnlijk verschilt dat per game; vandaar de game specifieke profielen.
Er zijn zat scenario's te vinden waarbij jouw beslisboom onwenselijk is. Stel ik draai een lichte platformgame en ondertussen heb ik van alles dat bezig is met renderen. Moet ik dan maar accepteren dat de rendering naar de E-cores verschuift als er ook maar 1 P core bezig is met "de game"? Dan kun je zeggen; zolang de game licht is dan kun je een andere tak van de beslisboom in, maar waar ligt de grens?

Bovendien hebben P-cores hyperthreading en E-cores niet, dus misschien is een E core voor sommige processen (die zich niet goed laten hyperthreaden) juist wel een heel goede keuze. Games zijn over het algemeen sowieso minder gebaat bij hyperthreading dan een productivity task, tenminste dat was vroeger zo. Ik weet nog dat met de 9700K sommige games daar sneller op draaide dan op de 9900K; terwijl de 9900K 16 threads heeft en de 9700K 8. Het verschil? Naast wat MHz'en had de 9700k geen hyperthreading. Maw; een P core die 2 threads tegelijk afhandelt wil je geen 2 threads laten doen die niet goed gehyperthread kunnen worden, want in het slechtste geval heb je dan dus de performance van een halve P-core tot je beschikking.

Uiteindelijk wordt het een brei aan (rand)voorwaarden en heeft dat een lijst (vrij) arbitraire keuzes tot gevolg. Het probleem is beter op te lossen op een iets abstracter niveau. Liefst in de scheduler, maar dat zal nog wel even duren voordat die weer wat slimmer wordt om met al die verschillende cores (AMD heeft zijn 3D-cache) optimaal om te gaan.

[Reactie gewijzigd door A Lurker op 22 juli 2024 17:20]

Ik weet nog dat met de 9700K sommige games daar sneller op draaide dan op de 9900K; terwijl de 9900K 16 threads heeft
Omdat goed doorschalen tot 16 Threads ook tegenwoordig nog niet heel vaak voor komt in games, en al helemaal rond de release van de 9700/9900K niet. Ga je echter dezelfde vergelijking maken maar dan voor CPUs met minder fysieke cores dan is Hyperthreading zeker wel een grote toevoeging.


Moderne games kunnen op een 4C/8T CPU zoals een I7-7700K nog redelijk draaien met wat concessies mits je niet de hoogste FPS of stabielste frametimes verwacht. Een 4C/4T I5 processor van dezelfde generatie daarentegen gaat richting onspeelbaar en is rustig 30-40% trager dan eerstgenoemde.
Misschien moet je even wat benchmarks opzoeken voordat je het gooit op het aantal threads en mijn punt bagatelliseert:

https://tweakers.net/revi...ssors-gamebenchmarks.html

Hier zie je dat je toentertijd helemaal niet zo heel veel opschoot met hyperthreading in bepaalde games. Zowel de 6C/6T en 6C/12T enenzijds als de 8C/8T en 8C/16T zitten verdacht dicht bij elkaar in sommige games.

Bovendien, met wat je schetst zou de 9700k 8C/8T relatief dichter bij een 8600K 6C/12T moeten hangen (en er zelfs onder af en toe als hyperthreading zo goed werkt). En dan kun je het argument aanvoeren van vergelijken van verschillende generaties, maar dat kan ik dan weer gemakkelijk pareren door te stellen dat zowel de 9600K als de 8600K gevaarlijk dicht bij elkaar zitten en dat als hyperthreading echt zo'n ding zou zijn in games toen je ook echt wel meer verschil zou zien tussen 6C/12T en 6C/6T.

En check dan hier maar even voor wat benchmarks van de 7600K 4C/4T en de 7700K 4C/8T en kom tot de conclusie dat de meerwaarde van hyperthreading in games ook voor de CPU die je zelf aandraagt zeer wisselvallig bleek:

https://www.techspot.com/...y-lake-desktop/page9.html

Tuurlijk, oude games, maar ik heb geen 7600K op de plank liggen om hem anno 2023 nogmaals langs de 7700K te leggen. Bovendien stelde ik dat het vroeger zo was dat hyperthreading, en dat blijkt toch wel aardig uit alle getallen.

Of het nu nog steeds hetzelfde situatie is, is lastig te zeggen aangezien er veel minder high/mid-end processoren zijn zonder hyperthreading die zich goed en objectief laten vergelijken met eentje met hyperthreading. Maar dat het aan te veel threads ligt die niet aan het werk gezet kunnen worden...nee sorry dat kan ik in het geheel niet concluderen aan de hand van deze benchmarks.

Neemt niet weg dat niet elke game goed schaalt t/m of zelfs over 16 cores. Dat is dan weer het andere uiterste. Allemaal situationeel dus stel ik.

(Ik heb toevallig een 9700K en heb toen op basis van deze benchmarks de keuze gemaakt voor mijn game PC, vandaar dat ik deze kennis redelijk paraat had)
Misschien moet je even wat benchmarks opzoeken voordat je het gooit op het aantal threads en mijn punt bagatelliseert:
Nee je bevestigd met je linkjes juist exact mijn punt, het probleem is niet zozeer dat Hyperthreading niet of slechts beperkt werkt in games, maar meer dat de geteste CPU's ook zonder Hyperthreading in principe al genoeg CPU cores hebben om:
- De game op het punt is gekomen dat één of enkele CPU thread(s) volledig ballast zijn en de rest van de threads staan te wachten op de output van de verzadigde thread(s)
- Er een GPU bottleneck waardoor elke CPU boven een bepaalde grens snel genoeg is en hetzelfde scoort, zeker in die oudere launch reviews waarbij ze nog met een 980Ti testen o.i.d..
https://tweakers.net/revi...ssors-gamebenchmarks.html
Hier zie je dat je toentertijd helemaal niet zo heel veel opschoot met hyperthreading in bepaalde games. Zowel de 6C/6T en 6C/12T enenzijds als de 8C/8T en 8C/16T zitten verdacht dicht bij elkaar in sommige games.
Het feit dat de 6C/6T hetzelfde scoort in alle geteste varianten (ik houd voor errormarge zelf altijd 5% aan) op één na als de overige configuraties bevestigt wat ik hierboven schreef. Als 8C/8T nu duidelijk zou winnen van 6C/6T terwijl 6C/12T niet beter scoort dan had je een punt gehad, maar dat zie ik dus niet terug komen. Alleen in AC:Origins op Medium zie je dat 6C/6T echt achterblijft, maar ook de 6C/12T processor gaat er juist dan voorbij, dankzij HT. Niet zo snel als de 8C/8T inderdaad, maar dat kan deels komen doordat de game wel doorschaalt naar 8 threads om volledig te benutten maar niet naar 12, waardoor een 6C/12T wel baat heeft bij HT maar niet volledig
Bovendien, met wat je schetst zou de 9700k 8C/8T relatief dichter bij een 8600K 6C/12T moeten hangen (en er zelfs onder af en toe als hyperthreading zo goed werkt). En dan kun je het argument aanvoeren van vergelijken van verschillende generaties, maar dat kan ik dan weer gemakkelijk pareren door te stellen dat zowel de 9600K als de 8600K gevaarlijk dicht bij elkaar zitten en dat als hyperthreading echt zo'n ding zou zijn in games toen je ook echt wel meer verschil zou zien tussen 6C/12T en 6C/6T.
In een ideale situatie kan een 8700K (ik neem op basis van core en threadcount even aan dat je die bedoelt :P ) idd een 9700K vrijwel matchen, maar je bent dan wel volledig afhankelijk van het goed en effectief kunnen gebruiken van 12 threads. Precies wat je bij AC:Origins op Medium zag gebeuren dus en waarom de 9700K de betere gaming CPU is (want kan met 8 threads hetzelfde of iets meer dan de 8700K met 12 kan)
https://www.techspot.com/...y-lake-desktop/page9.html

Tuurlijk, oude games, maar ik heb geen 7600K op de plank liggen om hem anno 2023 nogmaals langs de 7700K te leggen.
Maar dat het aan te veel threads ligt die niet aan het werk gezet kunnen worden...nee sorry dat kan ik in het geheel niet concluderen aan de hand van deze benchmarks.
Ja en een bejaarde 980Ti waardoor vrijwel alles GPU bound is, nu moet je dit natuurlijk niet met een 4090 gaan testen natuurlijk maar een mid-ranger als een 6700XT of 3060Ti als upgrade voor een bestaand systeem met 6 of 7e Gen processor is geen ondenkbaar testscenario.

Ik heb ze eind 2021 dus wel degelijk min of meer naast mekaar gezien (dat was 6600K vs 7700K, maar 6 vs 7e generatie is qua verschil verwaarloosbaar) in vrijwel identieke systemen met moderne games en een stuk betere videokaart dan in de launchreviews met als context wat testwerk voor een bekende waar nu de bottleneck van zijn systeem etc. lag. De 7700K liep in situaties waarbij de 6600K continu op 100% belasting stond gewoon 30-40% beter qua FPS, deel kloksnelheid en extra cache natuurlijk maar durf toch wel te beweren dat zeker 20-25% zeker door hyperthreading komt.
En daar baseer ik mijn mening en ervaring ook vooral op waarna ik verder gaan zoeken ben etc., ik dacht daarvoor namelijk min of meer hetzelfde als jij.

GamersNexus heeft in 2019 nog een revisit gedaan van de 6e generatie waarbij vergelijkbare verschillen te zien zijn van ruim 30% in het voordeel van de 6700K bij sommige games tov 6600K. En die situaties zullen anno nu alleen nog maar vaker voorkomen. Vandaar ook mijn stelling, 4C/8T kan met concessies nog mee, 4C/4T niet meer.
https://www.youtube.com/watch?v=LCV9yyD8X6M&t=0s


EDIT:
Nog een relevante test van Tweakers waarbij ze een 3900X getest hebben met uitgeschakelde cores en HT:
review: Cpu-corescaling: hoeveel cores heb je nodig voor gaming in 2021?

Ook hier maakt 4C/8T een mega verschil tov 4C/4C en zelfs 6C/6T wordt verslagen qua frametimes.

6C/6T vs 6C/12T is ook vrij duidelijk meetbaar in tegenstelling tot launchreviews, echter vanaf 8 cores worden het allemaal niet relevante verschillen in de marge.

[Reactie gewijzigd door !mark op 22 juli 2024 17:20]

Kijk, hier kan ik wat mee! :+

Grotendeels interessant en ik denk dat alles er intussen wel over gezegd is, maar ik bedoelde wel echt de 8600K vs 9600K om ook een blik te kunnen werken op een vergelijking van 8 gen en 9 gen. Gewoon om het argument "nieuwe serie, betere architectuur/process/upgrades" voor te zijn.

Nuttige analyse dit inderdaad:
https://tweakers.net/revi...-2021-cyberpunk-2077.html

....maar wat een draak van een grafiek is dat, daar kun je net niks duidelijk aan aflezen. Toen ik het in een normale barchart stopte in google drive kon ik er wat mee. Dus inderdaad lijkt het naarmate de CPU het zwaarder heeft zo dat hyperthreading meer kan toevoegen. Ik zeg kan, want zeker niet bij elke game die daar getest is maakt het uit. Maar dat is wel interessant, dat het ook afhangt van de totale load. Dus toch wat bijgeleerd.

Hoe dan ook, we gaan het zien. Het zou me niks verbazen als Intel HT laat vallen in hun 15e gen. Geruchten zijn er al en ach ja cores genoeg tegenwoordig.
Kan je hyperthreading niet gewoon uitschakelen via de UEFI als je een appels met appels test zou willen doen in 2023? Idem core counts.
Dat is een goed punt. Geen idee eigenlijk, en ik heb nu net een CPU zonder hyperthreading. Ten tijde van de 9000-series was dat nog een manier van Intel om je producten voor verschillende segmenten te ontwikkelen.

Ik denk eerlijkgezegd dat HT er gewoon uit gaat bij de 15e gen. Ik ben enorm benieuwd naar 2024, met de Ryzen 8000 release en de Intel 15th gen. Geruchten zijn dat de 15th gen wel een flinke stap wordt. Mocht het zo zijn denk ik dat ik ofwel een CPU uit de Ryzen 8000-serie ofwel een Intel ga kopen, in dat laatste geval waarschijnlijk een 15700 gebaseerd op de prijsstelling van de afgelopen 1x700's.
Dit klinkt logisch, dank u
Als cpu fabrikanten net als voor videokaarten specifieke drivers moeten gaan ontwikkelen telkens er een nieuw spel uitkomt krijgen we op den duur instabiele bloatware vrees ik.
100% mee eens.

Ik weet nog dat er TERECHT heel erg geklaagd werd over de 7950X3D, odmat die drivers nodig had om betere performance in games mogelijk te maken. maar nu doet Intel het met hun hybride architectuur, en nu krijgen ze een positieve review?

Sorry, maar dit is gewoon een gigantisch slecht ontwerp.
Voor elke game een driver/patch. Dat was zo bij de cpu's van Cyrix.
Dat is niet nieuw, ik geloof dat het in Windows 7/8 zelfs nog gebeurde dat je de Intel CPU drivers nodig had om de cache enz goed te laten communiceren met software. Het bracht alleszins veel prestatie verbeteringen met zich mee.

Ik herinner me ook nog de intel INF drivers om onder andere de chipsets met CPU optimaal te laten werken. Dat bracht in het begin ook prestatie verbeteringen en later stabiliteit met zich mee.
Intel en Nvidia kiezen er voor dit soort maatwerk te leveren dat toevallig alleen op hun nieuwste platforms werkt.

AMD lijkt wat meer voor de verbeteringen te kiezen die over de gehele linie werken, en ook backwards compatible zijn en tevens verbeteringen bij de consoles realiseert.

Nu kiest Intel twee oude games uit, waar hun nieuwste platform beter op werkt met een trucje.

Overigens vraag ik mij wel af wie Siege op 700 fps kan/wil spelen.
Ben benieuwd of wattage en core snelheid ook t zelfde bleven tijdens het gamen?
Gemiste kans om dat niet even mee te testen ja.

Het zou namelijk beide kanten op kunnen: als Intel de boel zo configureert dat cores die niks toevoegen in een slaapstand gaan ipv verwoede pogingen doen toch iets bij te willen dragen, zou in theorie het verbruik omlaag kunnen gaan.
Of omhoog, doordat de zwaarst stroomvretende p cores nog harder gaan draaien welke op dat moment al significant minder efficiënt zijn.
idd dit, natuurlijk zijn ze dat even vergeten op de redactie want dat is niet relevant. Daarbovenop zal intel wel zeer zeker het preferred core systeem toepassen waarin zij bepaalde P cores nog hogere turbo laten toepassen met extra vcore en andere P cores als compensatie van warmte laten downscalen. Al een geluk dat natuurlijk zoals in een testbench iedereen altijd op een 100% clean MS OS werkt en niemand maar ook niemand zal nog iets anders actief hebben op zijn systeem dan die game....er is natuurlijk een walhalla aan e-cores waar iedereen zo weldoende vandaag de dag mee kan werken.

ik zou zeggen aan de redactie, doe nog eens de test met wat extra gegevens (load-power-etc) en draai ook eens iets anders geforceerd op de P-cores en kijk eens wat er nog over is van de APO...

tot zover de benchmarkls en een review van een redactie... de benchmark liefhebbers zullen er zeker van smullen. En tot op heden zijn het op games die al zo een hoge fps hebben dat het er eigenlijk niet meer toe doet...

Het wordt beter en beter met de HW industrie, tegenwoordig moet je al voor elke game gaan kijken of er geen DLSS, FSR, APO en whatever beschikbaar is om het beter te laten werken en voor elk ding mag je het specifiek gaan instellen. we zijn goe bezig met applicatie specifieke SW optimizer.

[Reactie gewijzigd door d3x op 22 juli 2024 17:20]

Met een beetje geluk nog iets hoger, hoef je niet meer de verwarming aan te zetten de komende winter :+
Tja, als dat voor een fps-verhoging leidt die je niet ziet, dan heb ik liever een lager stroomverbruik en verwarm ik m'n huis liever met de meest energiezuinige verwarmer in huis...
Dat moet dan wel een warmtepomp zijn, want andere vormen van elektrische verwarming zijn in principe even efficient. Natuurlijk zal een pc de warmte wat minder goed verspreiden, maar uiteindelijk staat ie wel alle gegenereerde warmte af aan de omgeving en zal je primaire verwarming dus wat minder moeite hoeven doen. Als je álleen maar een pc als verwarming zou gebruiken dan zou dat niet zo efficient zijn want dan komt de warmte niet echt bij jou aan.

De enige reden dat een warmtepomp efficienter is is omdat de warmte uit de omgeving buiten wordt onttrokken ipv gegenereerd, dat is natuurlijk een gigantische winst.
Inderdaad een bodemwater-warmtepomp.

Maar gas is op prijs nog steeds efficiënter dan elektriciteit, zelfs als beide systemen maximaal rendement opleveren. Laat staan dat je hiervoor een pc gebruikt, die slechts zo'n 10-20% van z'n energie als restwarmte uitstraalt. Lekker warm aan je voeten als je aan 't gamen bent, maar 't warmt er je woonkamer niet mee op. En dan nog blijft mijn punt:

Met een beetje pc (GTX1070) haal je op lage instellingen bij Siege (competitief, dus wordt vaak op lagere settings gespeeld) 100+ FPS. Zou je daar een winst van 13% bij optellen dan ben je niet echt zichtbaar aan het verbeteren.
Maar gas is op prijs nog steeds efficiënter dan elektriciteit, zelfs als beide systemen maximaal rendement opleveren. Laat staan dat je hiervoor een pc gebruikt, die slechts zo'n 10-20% van z'n energie als restwarmte uitstraalt.
En waar denk je dat die overige 80-90% energie precies naartoe gaat?
Een PC staat 100% van z'n elektriciteitsverbruik aan warmte af. Het is alleen niet zo handige vorm idd, omdat het aardig gecentraliseerd is en niet door een (significante) fan de ruimte door gaat. Maar verder is een PC die op 300 watt draait gewoon exact hetzelfde als een elektrische kachel die op 300 watt draait.
Ik zit hier een beetje over na te denken, maar klopt dat wel? Ik spreek je niet tegen hoor. Ik probeer het te bevatten.

Bij een lamp wordt een deel van de energie omgezet in licht en de rest in warmte. Die is simpel.
Maar voor een pc…. Laten we even de ledjes (licht) en de fans (kinetische energie en geluid) buiten beschouwen laten. Dus laten we zeggen de chips van de pc. De chips zijn als het ware een hele vracht minischakelaars (versimpeld gezegd). De staatveranderingen van die schakelaars is het doel. De warmte is verlies.

Dan zit je dus niet ongeveer 100% warmte moeten hebben, maar minder. Ik ben alleen geen idee hoeveel procent dat is.
Die staatsveranderingen slaan alleen geen energie op, als de pc weer uit staat dan zijn er soms wat bitjes op de SSD veranderd maar er is geen latente energie in het apparaat te bekennen, er wordt geen veer gespannen, er wordt geen gewicht omhoog verplaatst, oid. En aangezien energie niet verloren kan gaan (tweede wet van thermodynamica) betekent dat dus dat alle energie in warmte is omgezet.

Het is idd niet het DOEL van het apparaat om de warmte-energie te genereren, maar dat is wel het resultaat.

Dit geldt overigens voor alle elektrische apparaten, en sowieso heel veel processen.

Hier wordt er ook wat op ingegaan bijv: https://electronics.stack...by-a-chip-turns-into-heat

Edit: overigens noem je nog kinetische energie en licht. De kinetische energie van de fans wordt gewoon weer in warmte omgezet door wrijving. Het licht dat de kamer zou verlaten door een raam zou inderdaad 'ontsnappen' als niet-hitte energie, maar het overgrote merendeel zou gewoon worden geabsorbeerd in de kamer en dan ook weer hitte worden.

[Reactie gewijzigd door Argantonis op 22 juli 2024 17:20]

Dat moet dan wel een warmtepomp zijn, want andere vormen van elektrische verwarming zijn in principe even efficient.
Een kat op de schoot is ook behoorlijk efficiënt he (als je het voer even niet meerekent :) )
Deze serie past toch nog in de oude socket? Ik heb een 12600K en denk over een 14700K of is de 14600K al een enorme vooruitgang, scheelt behoorlijk in prijs.
review: Intel Core i5 14600K, Core i7 14700K en Core i9 14900K

Niet echt on-topic, maar het verschil tussen een 12e en 13e generatie is niet erg groot, en die tussen de 13e en 14e al helemaal niet.
Er is toch een redelijk verschil tussen 12 en 13? Ik meen me te herinneren dat een 12900K net iets trager was dan een 5800x3D en een 13900K is net iets trager dan een 7800x3D. Het is dus een gelijkaardige sprong als tussen Zen 3 en Zen 4. Natuurlijk was dit nu ook geen spectaculaire sprong.
Tja, definieer "redelijk verschil". Er is wel wat verschil maar groot is het niet, het is echt niet de honderden euro's aan gaan uitgeven die zo'n upgrade kost. Als je netto voor drie tientjes een upgrade kan doen, ja, zeker doen, maar dat zie ik niet gebeuren.

Specifiek bij de i9 K-varianten is ook gewoon het verbruik enorm opgerekt om prestatiewinst uit te halen. Dat zie je bij de i5-lijn veel minder terug.

[Reactie gewijzigd door bwerg op 22 juli 2024 17:20]

In Cinebench R23 is het single core verschil tussen de i9-14900K en de i5-12600KF maar exact 20.3%

Als hij hoofdzakelijk single threaded apps gebruikt gaat een upgrade naar een i5-14600K waarschijnlijk niet de moete zijn want het prestatieverschil gaat procentueel minder dan 20% zijn.

Als het een persoon is die hoofdzakelijk en frequent multi-threaded apps gebruikt dan kan het wel de moeite zijn om te upgraden, want op mult-core prestaties kan hij een veel grotere upgrade doen.

Dus het hangt van hoe hij de CPU gebruikt. Voor gaming zou ik zeggen dat het niet de moeite is om te upgraden want de i5-12600K haalt makkelijk 80FPS in alle games en een mens merkt geen verschil tussen 80FPS en 100000FPS.
Belangrijke kanttekening is gok ik wel dat dit waarschijnlijk alleen voor games en resoluties gaat werken waarbij je cpu limited bent!?
Ligt eraan dat wat je als "werken" ziet. Als je die prestaties ook in je FPS terug wil zien, dan ja, uiteraard.

Het werkt wel in die zin dat de CPU-prestaties gewoon verbeteren en de load dus lichter wordt. Dus meer ruimte om naast de game nog iets anders te doen, bijvoorbeeld.
Interessant, een paar weken geleden had ik ineens een unknown device in device manager na een BIOS update, en na een flinke zoektocht voor werkende drivers bleek het dus inderdaad Intel(R) Innovation Platform Framework Manager en de participant te wezen. Het grappige is dat ik een 13900k heb, terwijl het artikel zegt dat het enkel voor 14e generatie is?
Ik heb ze hier even samen in een screenshot gedaan in device manager.

[Reactie gewijzigd door Zorian op 22 juli 2024 17:20]

De 13e en 14e generatie zijn in praktisch alle opzichten hetzelfde, dus technisch is er geen reden om deze optimalizatie ook voor de 13e generatie beschikbaar te maken.

Qua scheduling en core-verdeling zou het me niks verbazen als ook de 12e generatie deze optimalisaties krijgt.
Jammer dat met dit aspect enkel wordt gefocust op gaming. Een van de grootste bottlenecks in zakelijk gebruik is het werken met CAD software, waarbij veel van de meest gebruikte pakketten (AutoCAD, Inventor, Solidworks, Creo, etc.) nog steeds zwaar leunen op single threaded processor performance van de CPU. Even plat gezegd: bij het samenstellen van een CAD station is de kloksnelheid als ook de cache grootte nog steeds van het allergrootste belang, alsof het nog steeds 1993 is.
Intel APO werkt op dit moment alleen in deze twee games, dus andere software ermee testen heeft geen nut.
Ik denk dat games de huidige complexe CPUs echt niet leuk vinden.
Intel met hun P en E cores, AMD met hun multi chiplet en cross CCD latency.
Dat laten al dit soort software tweaks wel zien...
Dit voelt aan als een bugfix voor een slechte scheduler die niet goed het verschil tussen P en E cores (kan) benutten.

Zou me niet verbazen als die 'driver' alleen maar een lijstje heeft van elke game met welke threads op de P core en welke op de E core moeten.

Wat een poeha
Dat is nog best lastig, zo'n "lijstje". Want threads hebben niet echt een identiteit. Het OS geeft ze runtime een nummer, maar dat is per keer verschillend.
Maar je kan wel via een driver direct met een cpu communiceren (zeker als je een cpu ontwerpt) om te vragen welke core ie is of vragen of ie x instructie kan of niet? Kan je instructie X niet dan ben je een E-core anders een P-core.
Triviaal, hoet je niet eens te vragen. DIt is een Intel driver, die kan gewoon een lijstje hebben. i7 14700K? Dan zijn dit de P-cores en dit de E-cores. Daar heb je alleen niets aan als je wil weten of thread #48910 over 3 milliseconden misschien een lijst instructies gaat uitvoeren die beter op een P-core kunnen.
Ik gebruik simpelweg core assignment om applicaties aan een core te binden. Niets ingewikkeld aan en makkelijk toe te passen. Ik start het via een snelkoppeling die een command line uitvoert maar dat kan in theorie ook makkelijk via een programma.

Zo hoopte de software van mijn TB en muis van core naar core en vertraagde daarmee mijn systeem. Door het vast te zetten kon het systeem effectiever boosten en was hij dus sneller.

En misschien is het zo simpel als dat de scedular van Windows 11 simpelweg niet in staat is deze games alleen op P-cores te laten draaien. Dat is helaas niet getest. Misschien is het zo simpel als voor deze applicaties alleen de P-cores toe te wijzen omdat de Windows scheduler dat verkeerd doet. Dit hadden ze even kunnen testen door simpelweg een E-cores uit te zetten in de bios.
Toen de 12th gen net uit was waren er tal van games die sneller waren met de E-cores uit.
Ik denk dat dat best te doen is zo'n lijstje. Een thread heeft diverse properties waar je naar zou kunnen kijken om ze uniek te identificeren.
- Volgorde waarin de applicatie de thread's spawned.
- De initiele stacksizes van de threads zouden anders kunnen zijn.
- De offset van de main thread procedure in de applicatie zou fixed/herkenbaar kunnen zijn
En zo zie ik nog wel meer mogelijkheden. Iets te low-level wat mij betreft, en zeker meer in de hacksfeer dan netjes programmeren maar het zal vast kunnen.
* De volgorde van creatie is alles behalve robuust. Weet jij hoeveel threads een Chinese Input Method Editor (IME) in jouw proces spawned?
* De initiële stack size van Windows is typisch de default 1MB/8MB reserve.
* De offset van de main thread proc is vaak een vaste wrapper. (bijvoorbeeld een std::thread member in C++).
>> De volgorde van creatie is alles behalve robuust. Weet jij hoeveel threads een Chinese Input Method
Van de twee ondersteunde games is vermoed ik de order van threads spawnen bij startup deterministisch en kun je makkelijk zien welke van die threads veel cpu pakt. En dan gaat dus thread nr x naar een P core. I

>> De initiële stack size van Windows is typisch de default 1MB/8MB reserve.
Niet bij serieus geoptimaliseerde games. Ik pas de stacksize soms al aan in mijn eigen multicore tooltjes

>>* De offset van de main thread proc is vaak een vaste wrapper.
Het herkennen van een paar wrappers en daar de goede pointer uithalen is ook geen hogere wiskunde.

Als je toch aan het hacken bent met drivers die de os-scheduling tweaken dan lukt het je echt wel iets t e verzinnen om te zien welke thread naar welke core moet.

Op dit item kan niet meer gereageerd worden.