Artikel top billede

(Foto: Computerworld)

Fremtidens avancerede mikroudstyr

Cpu’ens dage er talte, og AMD håber at lede os ind i en verden, hvor alle kerner er lige, siger Dave James og Torben Okholm.

Af Torben Okholm, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Vores hjem flyder som regel med elektricitet, der i høj grad bliver brugt af elektroniske enheder. Vi holder også af nyheder, og derfor tror du måske, at vi elsker det årlige Consumer Electronics Show i Las Vegas. Men intet kunne være mere forkert. CES og Vegas er ikke noget for os.

Messecenteret er et kaos af oplyste skilte, der er omgivet af skubbende og råbende mennesker, der rager på de nyeste storskærm-tv’er. De eneste pc-folk, vi har lyst til at tale med, er godt gemt inden i labyrintiske kasino-hoteller på hovedgaden med dens mange prostituerede.

Hvorfor skulle vi så flyve omkring 8000 kilometer over Atlanten og over det isdækkede USA lige efter nytårsfestlighederne for at opsøge noget, vi foragter? Vi har været inde på det før: Det er alt sammen AMDs skyld. Hvis AMD ikke havde pirret vores nysgerrighed med nogle fascinerende nye teknologier og en chance for at tale med de hjerner, der står bag dem, ville vi ikke have været der.

Det nye silicium i AMDs Kaveri-chip er faktisk ikke firmaets mest interessante nyhed i 2014. Det overraskende fra denne siliciumproducent er software, der bliver understøttet af hardware, som rummer de fleste løfter for fremtiden indenfor pc’er og pc-spil.

APU’en er den egentlige fremtid for vores maskiner. Engang var den simpelthen en marketingfaktor, der adskilte processorer fra Intel og AMD. Med integreret grafik er den i dag langt langt mere end blot en processor, der er blevet forsynet med en sjat ekstra grafiksilicium. Takket være de kombinerede muskler i Heterogeneous System Architecture og det nye Mantle-API glider den avancerede processor længere og længere væk fra fortidens cpu’er.

AMDs seneste Kaveri APU, A10-7850K, er faktisk ikke nogen særlig god cpu. På trods af Steamroller-udvidelserne giver den ikke den stigning i antallet af instruktioner pr. clockfrekvens, der skal til for at levere et ordentligt single-thread-boost. Grænsen på fire threads betyder, at dens multi-threading-kraft heller ikke er imponerende, sammen-lignet med andre chips i samme prisklasse.

Men den er en APU – en avanceret cpu – og da AMD har afsat omkring 47 procent af kredsløbet til grafik-kerner, er den tæt på at opnå ligevægt mellem de forskellige former på on-die-silicium på et hardwareplan. Grafikkomponenterne er milevidt foran tilsvarende Intel-chips.

Hvorfor er det vigtigt? Til at begynde med bliver der udført langt flere beregninger på et visuelt plan end nogensinde før. Derfor er grafik-ydelsen vigtig, også for maskiner uden diskrete gpu’er. Men disse grafikkerner er også ekstremt kraftige parallelle processorenheder, og det er meget tiltrækkende at have den computerkraft ved siden af cpu’ens serielle processorkraft.

Desværre er det i øjeblikket ret svært at få cpu og gpu til at arbejde godt sammen, og det er her, HSA kommer ind i billedet. Heterogeneous System Architecture giver en komplet chip, der kan klare de rette belastninger på den bedst egnede del af processoren.

Lige nu hersker cpu-delene. De bestemmer over gpu-kernerne og styrer systemhukommelsen. Det betyder, at cpu’en kontrollerer alt og holder gpu’en som slave. Gpu’en udfører det arbejde, den får besked på, og sender resultaterne tilbage til hukommelsen på en måde, som den centrale processor kan forstå og igen få adgang til.

Lige vilkår

HSA er revolutionerende i den henseende, idet den giver både cpu og gpu lige adgang, ikke blot til den heterogent forenede hukommelsestruktur (hUMA), men også når det gælder om at stille opgaver i kø og flytte rundt på dem. Og Kaveri-APU’erne er de første fuldt HSA-kompetente processorer.

AMD definerer HSA som »et processordesign, der gør det nemt at udnytte en APUs totale regnekraft med henblik på at opnå hurtigere og mere energieffektive enheder«. Det er grunden til, at man har valgt at holde op med at tale om, hvor mange cpu-kerner og gpu-kerner der er i APU’erne.

Det er ikke blot salgsgas, for formålet med HSA er at levere komplet adgang til software til hele regnekraften i en chip, idet man bruger de cpu- og gpu-kerner, der kræves til en given opgave. Med A10-7850K betyder det, at der er tale om 12 kerner – fire Steamroller-cpu-kerner og otte GCnx-regneenheder.

»Der er ikke længere nogen herre«, siger Joe Macri, vicedirektør hos AMD. »Gpu’en kan overlade arbejde til cpu’en og omvendt. Når de arbejder med et problem, er der vektordele af problemet, som er på gpu’en, og der er mere skalerbare dele – serielle dele – som er på cpu’en.«

HSA fjerner mange af de ulemper, der knytter sig til, at cpu’en er den styrende og bestemmende faktor, mens gpu’en ikke er i stand til selv at træffe beslutninger. Nu skal ingen af parterne vente på den anden for at komme videre eller få adgang til hukommelsen.

»Vi har gjort gpu’en til en ligemand,« siger Phil Rogers fra AMD. »Cpu’en og gpu’en kan overlade arbejde til hinanden uden at skulle kalde ned gennem et operativsystem og gennem devicedrivere. Nøglen består i at overgive al denne processorkraft til udviklerne. Når et program flytter sin parallelle beregning til gpu’en, har den to fordele: Den kører hurtigere, og strømforbruget falder. I den situation er gpu’en ofte fire gange så energieffektiv«.

Tænk på udviklerne

Denne betænksomme holdning til udviklerne repræsenterer en fundamental ændring for AMDs hardwaredesign. Tidligere ville firmaet specificere et nyt sæt interfaces og hardware og derefter fortælle udviklerne, at hvis de ville have adgang til det fine nye og avancerede silicium, skulle de blot skrive deres software helt om.

»Det fungerer ikke længere,« siger Rogers. »Hvordan bliver den programmeret i dag, og hvordan ændres hardwaren, så den passer til softwaren? Moderne applikationer – for eksempel spil, billedfremvisere og videoeditorer – bruger en masse programmeringsteknikker, som nutidens programmører tager for givet. Og de vil også bruge dem i et heterogent miljø. HSA bringer hardwaren til programmøren i stedet for det modsatte.«

For mange af os er det, HSA gør, nemlig at sprede de parallelle arbejdsopgaver ud blandt gpu-kernerne, en temmelig tør affære. Men Adobe-applikationer nyder godt af den øgede parallelle processorkraft, der giver mulighed for mere realtids-manipulation, biometrisk genkendelse får et fartboost, og det hjælper også på auditiv og visuel indeksering.

Heldigvis giver HSA også gaming et løft. »Vi fokuserer meget på gaming. HSA giver ultra-realisme til spillene,” siger Rogers. Det lyder som noget af en påstand, men Neil Robison, der er direktør i AMD, er sikker på, at spiludviklerne vil kunne drage fordel af arkitekturen.

»De får masser af muligheder for at udnytte regnekraften. Navnlig når vi taler om fysik og lys i spillene. Hvis man er spiludvikler og skal arbejde meget med intensiv AI og fysik, bliver det vigtigt, især når man tænker på spillernes forventninger til åbne verdener.« Eftersom begge næste generations-konsoller tager AMD-silicium til sig, er der stærke incitamenter til at se, hvad dette kan tilbyde.

Hvis HSA var en ren AMD-opfindelse, ville vi måske ikke være så entusiastiske, men HSA er ikke blevet skabt i isolation. Den anden udgave af OpenCL (Open Computing Language) er på vej, og AMDs Kaveri er den første fuldt kompatible OpenCL 2.0-chip. OpenCL er et åbent, low-level-API, der selv giver mulighed for heterogent computerarbejde, og HSA er blevet gjort fuldstændig kompatibel. »Nogle af nøglefunktionerne i OpenCL 2.0 peger direkte på HSA-funktioner,« siger Phil Rogers.

De store tilføjelser til OpenCL 2.0 er Shared Virtual Memory og Dynamic Parallelism. I HSA er de analoge med den heterogene, forenede hukommelsesarekitektur (hUMA) og heterogen søgning (hQ). AMDs indsats for at sikre, at Kaveri er fornøjet med HSA, gør teknikken klar til enhver form for OpenCL 2.0-kode. AMDs store fokus har været at gøre livet nemmere for programmørerne. Som Rogers udtrykker det: »Når man gør det nemmere for programmørerne, får man flere applikationer.«

Hvad med Mantle?

Den anden store ting fra AMD i år er firmaets Mantle-API. Det er et low-level-API, der skal give spiludviklere langt tættere adgang til grafikhardwaren, end Microsofts DirectX i øjeblikket gør det på pc’en.
»Da vi oprindelig nærmede os Mantle – og jeg var med, da vi besluttede os for det – tænkte vi, at vi blot ville gøre spillene hurtigere,« siger Robison. Her er en metode til at give udviklerne så tæt adgang som muligt til metallet – ligesom de kan på konsollerne.«

Det er nøglen til at forstå Mantle. De nyeste konsoller har præsteret forbløffende ting med grafikken på meget gammel og svag hardware. Det skyldes navnlig, at udviklerne nøjagtig ved, hvilken hardware de koder til, og de har ikke flere operativsystemer og API’er, der står i vejen for koden og hardwaren.

»Man ønsker ikke at have noget imellem sig selv og hardwaren, hvor det kan fjerne dyrebare cpu-cykler og svække ydelsen,« siger Raja Koduri, der er vicedirektør for visuel computerteknik hos AMD. »Hvordan slipper vi af med API-belastningen, så vi kan få mange, mange flere genstande og mange, mange flere draw-kald og gøre spillene endnu bedre?«

AMDs svar på det spørgsmål er Mantle. Det har virkelig gjort indtryk på spiludviklerne, og ikke blot den omfattende omtale af udvikleren af Battlefield 4, DICE. Oxide Games blev dannet af erfarne udviklere fra Firaxis og Stardock og har arbejdet på sin egen 64-bit Nitrous-engine til de to foretagenders RTS-spil.

Dan Baker er en af Oxides partnere, og han har vist to eksempler på Nitrous StarSwarm-demoen, der kørte på identisk hardware. Det ene brugte Mantle-API’et, og det andet brugte DirectX-API’et. Forskellen var overvældende. API-belastningen betød, at der nogle gange var 4000-5000 objekter på skærmen – hver med sin egen belysning, fysik og AI – DirectX-maskinen baksede ofte omkring 3-4 FPS.

Mantle-maskinen lå konsekvent omkring 40 FPS og håndterede nemt op til 6000 objekter. Vi talte senere med Adam Biessener fra Oxide, og han forklarede, at DirectX kunne håndtere lige så mange objekter, men med en langt lavere grad af grafisk præcision.

Det er indlysende, at en enorm del af belastningen kommer fra softwarelaget. »Vi havde lavet en masse analyser af API-belastning og fandt ud af, at den i høj grad var unødvendig,« siger Baker.
Robison siger, at det er en udbredt historie blandt de udviklere, AMD har samarbejdet med. »Da vi begyndte at arbejde med udviklere, sagde de: Ved I, at der er tonsvis af belastning på Direct3D, der kun spilder cpu-tid?«

Kernefordele

Det fascinerende er, at selvom der er tale om et API, der er udviklet til AMDs Graphics Core Next GPU’er, havde det i forvejen en ret stor brugergruppe. Den virkning, det vil få på din cpu, bliver kolossal. »Mantle er det eneste API, der for alvor skalerer på tværs af kernerne. Det får stor betydning,« siger Baker.

Det vil gavne enhver, der har taget springet med en otte-threaded i7 uden for alvor at få glæde af de ekstra threads. De, der har en seks- eller otte-kerners FX-chip, bliver også glade. Eftersom de nye konsoller har otte cpu-kerner, kommer vi til at se meget til multi-threading fra den kant, og det må være afgørende for pc’en at følge med. Det samme siger Koduri: »Mantle eller Mantle-lignende teknologier er afgjort nødvendige. Vi ved, hvor belastende de eksisterende pc-API’er er – der er masse cpu-cykler, der bliver ædt op til ingen nytte.«

Men Nvidia dominerer stadig markedet for pc-gaming. Vil AMD satse stort på at få udviklerne til at kode deres engines til Mantle? »Den største udfordring, jeg har haft i de seneste to-tre måneder, er at sige nej til en række af de førende spiludviklere«, siger Koduri. »Vores lille ingeniørhold, der arbejder på Mantle, har ikke tilstrækkelig båndbredde til at dække den efterspørgsel, vi bliver udsat for.«

Mantles primære fokus er altså producenternes spil-engines. »Vi har Frostbites engine; det har vi styr på,« siger Robison. »Men jeg tror, at vi i stedet for at arbejde individuelt med udviklere bør satse på engines. Det kan være en engine hos en stor udbyder som Ubisoft, Activision/Blizzard. Jeg tror, at det bliver vores næste skridt – og jeg tror, at Valves næste spil-engine giver glimrende mening.«

Ud fra det, vi foreløbig har hørt, er processen med at portere en spil-engine, så den kan arbejde med Mantle, ikke så besværlig, som den forsinkede Battlefield 4-opdatering kunne få en til at tro. Oxide havde kun en mand til at arbejde på at gøre Nitrous funktionel med Mantle i løbet af fire til seks uger, og DICE/EA’s tekniske direktør for Frostbite, Johan Andersson, har tilsyneladende arbejdet på BF4 og Frostbites Mantle-integration på egen hånd.

Den gode nyhed på den front er, at DICE og AMDs ingeniører har opnået et boost i gaming-ydelsen på omkring 45 procent, alene ved at bruge Mantle, selvom der har været forsinkelser på grund af problemer med bugs i BD4. Det er en imponerende stigning fra en gratis softwareopdatering.

En af de fordele, AMD fremhæver ved HSA, er muligheden for at lave mere naturlige brugerflader. Evnen til at bruge den parallelle computerkraft med HSA »vil hjælpe os til at forbedre nøjagtigheden, så vi kan blive mere naturlige,« siger Phil Rogers fra MD. »Det vil få flere folk til at bruge computere.«

Han sammenligner den aktuelle situation med bevægelserne og ansigts/stemme-genkendelse, der fulgte med touch. »Vi havde touch i lang tid; problemet var latenstiderne. Nu virker touch perfekt.« Vi er ikke helt enige, når det gælder pc’en, men det kan HSA måske også ordne.

»Folk taler om bevægelser, men forestil dig, at du foretager en bevægelse, uden at der sker noget. Så skal man gøre det igen. Til sidst bliver brugeren frustreret.« Det er noget, vi kan nikke genkendende til, efter at vi har overværet vicedirektør Mooly Edens Intel-pressekonference under CES.

Her demonstrerede han Intels bud på perceptuelt computerarbejde, Real Sense, ved hjælp af Intels 3D-kameraer til naturlige og “gribende” brugerflader. Ingen af disse demoer virkede særlig overbevisende – og det skyldtes ikke, at man ikke arbejdede for sagen. De haltende og passive demoer ville øjeblikkelig have fået os til at holde op med at vinke ad vores maskiner.

Det lader til, at Intel kunne have gavn af at få noget mere computerkraft til det perceptuelle eventyr og bevægelsesgenkendelse. Som Rogers udtrykker det: »Præcision er afgørende. Med større computerkraft kan vi rydde op i et billede, før vi genkender en bevægelse eller et input.«

En anden særlig interessant del af Mantle er kombinationen af et AMD GCN-drevet grafikkort og en Kaveri-APU. Når begge grafikdele bruger Graphics Core Next-enheder, kan Mantle udnytte regnekraften i dem begge samtidig.

Mens det diskrete kort tager sig af det meste af det hårde arbejde, kan det potentielt overlade nogle af de mindre effekter til den integrerede gpu. »Den kan fungere som en co-processor, der løser lette opgaver,« siger Adam Kozak fra AMD.

“Mantle tilbyder forskellige former for rendering. Vi arbejder på asynkron rendering, således at ens APU kan klare en del af skærmen, mens ens Hawaii tager sig af den anden. Med andre ord kommer ens Hawaii til at køre meget hurtigere på Kaveri, end den ville kunne på noget andet Intel-system.«

Der er også mulighed for at gøre ting som partikeleffekterne på APUs grafikkomponenter. Det kan frigøre yderlige 5-10 procent og levere gratis bonusydelse på et GCN-grafikkort i samarbejde med Kaveri.

»Jeg tror ikke, at man kan gøre det med DirectX,« siger Kozak. »Problemet med DirectX er en masse synkronisering – det er blot en plage for programmørerne.«

Når der sidder et diskret grafikkort i en maskine (uanset om den kører en AMD-APU eller en Intel-cpu med en integreret grafikdel), har softwaren i øjeblikket ikke adgang til processorens grafikkerner. Det er en skam, når man har betalt for silicium, som ikke gør gavn, når man kører sit diskrete kort. Med de interfaces, som Mantle og HSA giver os, kan det komme til at høre fortiden til – i hvert fald med AMD-chips.

I øjeblikket er Mantle en rent AMD-baseret teknologi, der kører på Graphics Core Next-gpu’er, helt adskilt fra Microsofts DirectX-API, som det i realiteten erstatter. Udviklernes problem er den mængde cpu-belastning, som skyldes API’et, men det kunne Microsoft gøre noget ved med DirectX.

»Der er nogle problemer, som man kunne løse, og jeg tror, at Microsoft er interesseret i det,« siger Adam Kozak.
Neil Robison er også optimistisk. »Jeg tror, at fremtidens muligheder er interessante. Vil dette få Microsoft til at løbe flere risici og udvide DirectX? Jeg ved det ikke. Jeg håber det. Vil det betyde, at OpenGL-folket kan sætte lidt skub i sagerne? Det håber jeg også.«

AMD udelukker ikke at arbejde med selve Microsoft fremover og dele sine Mantle-erfaringer med den øvrige branche. »Jeg fremsætter bestemt ingen meddelelser,« siger Robison, »men man kunne forestille sig et branchekonsortium eller et samarbejde med om at ændre på DirectX. Vi tror på branchestandarder, og det her er noget vi meget gerne vil se udvikle sig til en branchestandard.«

Uanset hvad der sker, drejer det sig om at få spillene til at virke bedre og om at få plads til flere funktioner i dem. »Hvad enten Microsoft i DirectX 12 eller 13 gør det ene eller det andet, er jeg ligeglad, blot spillene bliver bedre,« siger Kozak.