JavaScript is currently disabled.Please enable it for a better experience of Jumi. Grafikteknik sätter fart på multikärnorna

Medan Intel bygger multikärnor genom att rada upp x86-kärnor, satsar AMD på ett helt annat kreatur: strömningsprocessorn. Arkitekturen har bevisat sin styrka i grafikprocessorer. Cellprocessorn och AMD:s Fusion ska nu tämja strömningsarkitekturen till att leverera mer än bara hästkrafter åt datorgrafik.
SPECIAL: STRÖMNINGSPROCESSORER
Kryptering, mjukvarudefinerad radio, videokomprimering och radaranalys. Allt detta görs nu betydligt effektivare i den typ av multikärnor som kallas strömningsprocessorer, än i klassiska cpu:er och dsp:er.

Plötsligt översvämmas elektronikvärlden av nyheter om grafikkretsar som används som superdatorer. Amerikanska Peakstream vill göra seismologiska beräkningar i pc-grafikkort. AMD ska integrera en grafikkärna som accelerator i kommande x86-processorer. Och biokemister gör DNA-beräkningar i pc-grafikkort anslutna till Internet.

Det är några av de nyheter om strömprocessning ni kunnat läsa sedan september, om ni följer Elektroniktidningen på webben.

Det som hänt är att forskare insett att det går att lura grafikkretsar att utföra generella beräkningar. Din pc:s grafikkort har en magnitud större beräkningskraft än cpu:n – en insikt som nu förvandlas till projekt och produkter.

Strömningsprocessorer, stream processors. Så kallas den märkligt kraftfulla arkitektur som grafikkretsarna använder. Och som nu tilldrar sig intresset från allt fler halvledartillverkare.

Skakar liv i sovande kisel

De är en klass av multikärnor. Funktionellt kan man tänka på dem som programmerbara rörledningar, där varje steg kan vara ett helt litet program.

Strömningsprocessorer arbetar enligt löpande bandprincipen. Data skickas mellan beräkningsnoder och bearbetas steg för steg. Eller så växlar noden program, och fortsätter bearbeta data på plats.

Och för att krångla till det ytterligare förgrenar sig gärna dataflödet till parallella strömningskärnor – i Cellprocessorns fall åtta stycken – för ytterligare parallellism.

Bandbredden är en viktig parameter. Den sätter tempot på det löpande bandet. Cell består av en Powerkärna som styr åtta strömningskärnor. Mellan kärnorna gäller 205 Gbyte/s och till primärminnet 25,6 Gbyte/s. Dessutom finns oberoende DMA-kanaler.

Den grundläggande principen är densamma som för alla multikärnor – att skaka liv i sovande kisel.

– Egentligen är strömningsprocessning inget nytt. På Philips har vi hållit på med det sedan vi började experimentera med hdtv på sent 80-tal, tidigt 90-tal, berättar Harm Munk, ledare för forskningsprojektet Acotes, som tar fram verktyg för att programmera strömningsprocessorer.

– Det nya är att idag kräver tillämpningarna ännu mer beräkningskraft. Att bygga asicar blir för dyrt. Och standardprocessorer har inte den prestanda och strömsnålhet som krävs.

– Titta på vad som händer i en processor av idag. Under långa tidsrymder är det ingenting alls! En stor del av kislet gör ingenting annat än att dra ström. Och läckströmmarna ökar allteftersom processerna krymper, berättar Harm Munk.

– Så idén med en strömningsprocessor är att få så mycket kisel som möjligt att arbeta samtidigt.

– Metoden är att samla ihop de bästa signalkärnor man kan hitta, och se till att de alla jobbar parallellt i så stor utsträckning som möjligt, säger Harm Munk.

Ingen generell arkitektur

Strömningsprocessning passar inte alla typer av beräkningar. Webbservrar, databaser och skrivbordsprogram kan knappast accelereras i strömningsprocessorer.

– Överhuvudtaget mappar besvärliga kontrollflöden inte bra mot strömprocessorer. Och beräkningar med komplexa kontroll- och dataacessmönster fungerar dåligt, säger Joachim Strömbergson, teknikchef på Informasic, som konstruerar krypto-IP.

Strömningsprocessorerna kommer istället mest till sin rätt när de får tugga på långa serier av värden som utsätts för en och samma bearbetning.

Det är å andra sidan en vanlig situation för många viktiga tillämpningar. Grafikchips arbetar på stora bildytor fulla av pixlar. Naturvetare som simulerar fysik, kemi och biologi arbetar med långa serier av siffergrupper som kallas vektorer. Mobilsamtal är strömmar av värden i form av digitaliserat ljud.

– Ljud, video, telefoni, signalbehandling i basstationer och radarsystem – allt det passar utmärkt för strömprocessning, säger Joachim Strömbergson.

Själv vill han prova det på kryptering.

– Jag har länge tänkt att testa att använda Brook GPU för att accelerera kryptofunktioner för SSL/TLS och IPsec, men jag har inte hittat tid.

Brook GPU är ett öppen källkodsprojekt som nyttjar pc-grafikkortet för beräkningar.

– Än så länge har jag bara hunnit att bygga miljön och skriva några korta testsnuttar för att se att miljön lever.

EU vill tämja dessa bestar

Att effektivt programmera multiprocessorsystem är generellt ett mycket besvärligt problem. Trots decennier av forskning. Det finns en förhoppning att strömprocessorer ska vara ett undantag.

– Det är kanske strömprocessning som lättast kan utnyttja prestandan då det handlar om ett renare dataflöde, säger Joachim Strömbergson.

Där vi dock ännu inte idag.

– Cellprocessorn är en best att programmera. För en programmerare som är van att arbeta på en ensam x86-processor med ett grafikkort kopplat via PCI är det en helt ny programmeringsmodell.

Det är där det EU-finansierade projektet Acotes (Advanced Compiler Technologies for Embedded Streaming) kommer in i bilden. Projektledaren Harm Munk på NXP (tidigare Philips) använder samma metafor som Joachim Strömbergson.

– Nu är uppgiften att programmera dessa bestar.

Huvudintressenterna bakom Acotes är tre strömprocessortillverkare: IBM, ST Microelectronics och NXP. Av dem har IBM en strömningsprocessor färdig idag, Cellprocessorn. Men de är alla redan bekymrade över utvecklingsverktygen.

Det finns individer som lyckats tämja besten. Och därmed bevisat att prestandan faktiskt finns därinne och att den går att locka fram. Programmerarna på Mercury Systems får regelbundet Cellprocessorn att leverera en eller två magnituder högre prestanda än dagens värstingprocessorer från Intel, Freescale och IBM.

Men så är det också företagets levebröd. Det säljer Cellprocessorn i allt från pc-acceleratorkort till racksystem fyllda med Cellkort.

Det som Acotesprojektet vill få fram är en enkel produktiv programmeringsmodell som fungerar även för ickeexperter.

Till sin hjälp tar man forskare från institut i Israel, Spanien och Frankrike. Resultaten kommer att släppas som öppen källkod. Det kommer att bli en variant av programspråket C, är det bestämt.

Arbetshypotesen är att man behöver ett verktyg där kompilatorn och programmeraren samarbetar. Det är för svårt att bygga en kompilator som skapar ett optimalt parallellt program helt på egen hand. Istället ska kompilatorn ge tips och förslag och sedan låta programmeraren fatta besluten.

Acotes mål är att få in strömprocessorer i batteridriven konsumentelektronik. Strömsnålhet går hand i hand med parallelism. En dubbelkärnig 100 MHz-processor gör samma jobb som en enkelkärnig 200 MHz-processor, men med mindre energiförbrukning.

En av Acotes idéer är att använda strömningsprocessorer för att implementera programvarudefinierad radio. I mobiltelefoner.

– Det vore ett imponerande sätt att göra dem uppgraderbara i fält. Men då krävs det verkligen strömsnåla lösningar, säger Harm Munk.

En strömningsprocessor skulle också kunna fungera som en programmerbar basbandsprocessor, som växlar mellan att implementera GSM, 3G och Wifi.

Datorspel betalade utvecklingen

Människan älskar att leka och är beredd att betala priset för häftig grafik. Därför var det grafikkortstillverkarna som tidigt satsade stora resurser på strömningsarkitekturer.

Nu sprider sig strömningsprocessorns välsignelser via grafikkretsarna till fler områden. Men det utvecklas också strömningsprocessorer som inte är öronmärkta för grafik. Som Cellprocessorn, som visserligen ska sitta i Sony Playstation 3 och rita bilder, men också är optimerad för andra tillämpningar.

– Toshiba har ju varit med och utvecklat Cellprocessorn för att kunna få möjlighet att processa flera HDTV-kanaler samtidigt, påpekar Joachim Strömbergson.

Genom att integrera en grafikkärna i x86-processorserien Fusion, får AMD en strömningsprocessor ”gratis”, där IBM, Sony och Toshiba lagt ner 400 miljoner dollar på att utveckla Cell.

Det är många som idag knyter stora förhoppningar till strömprocessning. Genom trolleriet med grafikkorten har strömprocessorerna demonstrerat sin potential för att användas i mer generella sammanhang än grafik.

Andra sätt att bygga multikärnor – som exempelvis Intels metod att rada upp x86-kärnor – har mer kvar att bevisa.

Prenumerera på Elektroniktidningens nyhetsbrev eller på vårt magasin.


MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Rainer Raitasuo

Rainer
Raitasuo

+46(0)734-171099 rainer@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)