Med en liten extra krets på processorn menar Intel och ett forskarlag att man mångfaldigt ökat prestandan i flerkärniga processorer.
Möjligheten att använda flera kärnor samtidigt i en processor har varit ett av de viktigaste framstegen för modern processorutveckling. Idag kan nästan all mjukvara i någon mån använda sig av flertrådsteknik. I princip allt från mobiltelefoner till datorer använder åtminstone två fysiska kärnor.
Men även om flerkärniga processorer kan ge en rejäl prestandaknuff med mjukvara som är väl optimerad för att sprida ut sin belastning så skalar inte prestandan linjärt när nya kärnor läggs till. Ju fler kärnor du lägger till i en CPU, desto mindre extra prestanda får du ut. Använder du endast fyra kärnor tappar du bara en bråkdel av prestandan. Men rör du dig uppåt åtta eller fler kärnor blir prestandaförlusten till slut mycket påtaglig.
Varför tappas prestanda med många kärnor?
Anledningen är att en CPU, till skillnad från en GPU, inte i första hand är byggd för att räkna på oerhört många saker samtidigt. När en stor uppgift ska fördelas ut mellan de olika kärnorna i en processor behöver varje kärna känna till vad den ska göra, men även få tillgång till information om vad de andra kärnorna har gjort eller kommer att göra. När en kärna väl är färdig med en uppgift och ska ta sig an nästa kan den behöva information om vad grannen har kommit fram till för att kunna använda det resultatet i sin egen beräkning.
I och med att stora, flerkärniga processorer inte användes i någon nämnvärd utsträckning när Intel lanserade sin första X86-processor så fanns inte heller kommunikationen mellan många kärnor i samma krets med i beräkningarna. Fördelningen av uppgifterna i en flerkärnig X86-processor sköts därför med mjukvara. Utöver att köra beräkningen som en kärna blir tilldelad av ett program så behöver processorn även köra ytterligare en beräkning för att hålla koll på vilken kärna som gör vad, och dela den här informationen mellan kärnorna via arbetsminnet. Ju fler kärnor som läggs till, desto större andel av prestandan går åt bara till att hålla koll på hur arbetet ska fördelas.
Lösningen: hårdvara istället för mjukvara
Nu har ett forskningslag på North Carolina State University, i samarbete med Intel, publicerat en lovande lösning som utlovas ge markant bättre prestanda i flerkärniga processorer. Istället för att styra arbetsfördelningen mellan processorkärnorna med mjukvara så används särskild hårdvara, optimerad för just den uppgiften.
På pappret är lösningen enkel, och påminner om hur en grafikkrets klarar av att effektivt fördela arbete mellan hundratals eller tusentals kärnor i ett modernt grafikkort. Intels och forskarlagets lösning kallas för QMD, eller Queue Management Device.
“We have to improve performance by improving energy efficiency. The only way to do that is to move some software to hardware. The challenge is to figure out which software is used frequently enough that we could justify implementing it in hardware,. There is a sweet spot.”
– Yan Solihin, Professor i elektro- och datateknik på NC State University
Resultaten som publicerats i forskningsrapporten antyder en markant prestandaförbättring för processorer med kärnor på norr om 10 kärnor. För specifika arbeten som nätverkspakethantering kan QMD arbeta 20 gånger snabbare än mjukvarulösningen. I testet användes en processor med 16 kärnor. Den övergripande prestandaförbättringen uppges ligga mellan 2 och 12 gånger bättre prestanda för flerkärniga datorer, beroende på hur många kärnor som används. Förbättringen kan bli markant i server- och beräkningsprocessorer på över 20 kärnor.
Ett viktigt framsteg
Intels medverkande i projektet vill inte kommentera på när eller om QMD kan användas i färdiga processorer. Med det sagt så är det ett lovande tecken att en aktör som Intel redan är inkopplad på projektet. Det innebär att vägen från labb till fabrik är betydligt kortare än för framsteg som är helt och hållet experimentella.
För Intels del kan sådana här tekniker bli mycket viktiga för att förbättra prestandan i kommande processorer. Inte minst då det blir allt svårare att utveckla ny tillverkningsteknik. Förhoppningsvis kan det även vara ett bra incitament för Intel att lansera även billigare processorer med fler än fyra kärnor för konsumenter framöver.
Bild: Peellden
Intressant!
För lite tankarna till ACE i AMD’s Radeon grafikkort, då funktionen hos QMD verkar vara snarlik.