Parody schreef op dinsdag 13 februari 2024 @ 13:25:
[...]
Je OS weet het, maar volgens mij weet het OS niet welke instructies er gebruikt worden door een proces, en kan dus lastig beoordelen of een proces gemigreerd kan worden. Geen idee of je "invalid instruction" exceptions krijgt als je AVX-512 instructies op een E-core draait, want dat zou eventueel een workaround kunnen opleveren. Maar dan moet je OS dus wel onderzoeken om welk type invalid instruction het gaat, het proces eventueel terug migreren naar een P-core, en vervolgens weer opstarten (en uiteraard onthouden dat het om specifieke instructies gaat). Behoorlijk dure operatie... En andersom: een proces wordt op een E-core voor het eerst gestart, komt tot de conclusie dat er geen AVX-512 ondersteund wordt, en maakt onvolledig gebruik van een P-core.
Ze moeten dus zorgen dat de instructiesets gelijk zijn, en dat heeft Intel in dit geval noodgedwongen met de botte bijl bewerkstelligd. Het zou wat eleganter geweest zijn om te zorgen dat AVX-512 ook op een E-core gewoon werkt, maar daar is natuurlijk wel een nieuwe CPU voor nodig.
OS Weet het blijkbaar niet. Om simple reden legacy ,die conventionele kern versies voor big little aanpassen met afwijkende extended instrucieset. Zou ook core win API thread funties op de shop moeten.Lijkt eerder dat de keuze front back ground thread klok gestuurd is.
Kijk je naar platform waar ook gescheiden instrucieset de PS3 Cell PPE SPE daar weet het OS niet alleen onderscheid maar wordt dit ook door OS API beschikbaar gesteld.
X86 OS API zijn abstract je heb scheduler er tussen. Bij console OS heb gereserveerd voor systeem en de rest zijn de hardware thread in aplicatie eigenbeheer.
Als het 1 bedrif is die Hardware en OS en API in beheer heeft een Sony.
Maar voor X86 moet OS kernel op de schop maar ook de ontwikkel omgeving die nieuwe hardware core abstracte waar de de software makers in source code van thread creatie of het alleen op AVX512 cores moet draaien.
Dat houd in dat create thread met argumenten die aangeven vereist AVX512.
Het vereist dat P-cores en Ecores in win api moet onderscheiden en dus bewust AVX512 core moet kunnen kiezen.
Dan heb je nog hoe middleware zoals mathlib met deze belangrijk wel of niet feature beschikbaar. Naast dat deze threads uiteraard voorrang krijgen tov normale threads
Voor al als 2 Pcore 8 ecore zonder SMT cpu krijgt
Je zou met thread beheer libraries de geavanceerde core cahce detectie funties kunnen achterhalen welke core aan cache gebonden zijn en ook de hoeveelheid.
Je zal met je software wel die generaties moeten bijhouden als er aanzienlijke verandere komt wat niet compatibel is met core/cahce detectie algoritme.
Ik denk wel dat games die e-cores goed kunnen gebruiken. Maar dan moet je de threads zelf managen en op manier programeren met de nadruk op parallel en concurend paradigma’s iets wat gangbaar is bij de pro markten. Maar games heeft productie efficientie en content pipelijn een grotere preoriteit.
Als de compiler compileerd is wel bekend waar er AVX512 toegepast gaat worden in de code blokken, onder de runtime mits de cpu core detectie positief is. Maar waar het gaat draaien op welke core zal toch op een of andere manier gemanaged worden.
In job system zal je als programmeer aan jobs in Que voor threadpool moeten aangeven dat deze jon avx512 kan bevatten en de threadpool moet uiteraard spilt tussen wel en geen avx512 hardware threads.
Dus C++ standaard labary zal uitgebreid moeten worden met thread libary die p-core ecores naast win api die commite c++ zijn niet zo snel. Om zo feature er door te zetten zijn paar jaar verder. En dat moet met nauwe samenwerking met MS en Linux OS beheerders.
Nee dat zie ik niet gebeuren in jaren.
Nu kan je met thirdparty threadlibaries al je bekend bent met cache grote verschillen L1 L2 L3 L4 welke cores cache sharen en de grote verschillen.
Dan zou je AVX512 kunnen enablen en thread managen dat je de AVX512 thread expliciet naar de pcores stuurd met voorrang.
X399 Taichi; ThreadRipper 1950X; 32GB; VEGA 56; BenQ 32" 1440P | Gigbyte; Phenom X4 965; 8GB; Samsung 120hz 3D 27" | W2012SER2; i5 quadcore | Mac mini 2014 | ATV 4g | ATV 4K