AMD:s Manju Hegde är en av de sällsynta personer jag får interagera med som har en omfattande bakgrund som arbetar på både AMD och NVIDIA. Han var en av medgrundarna och VD:n för Ageia, ett företag som ursprungligen försökte få högre kvalitet på fysiksimulering till stationära datorer i mitten av 2000-talet. 2008 förvärvade NVIDIA Ageia och Manju följde med och blev NVIDIAs VP för CUDA Technical Marketing. CUDA-passningen var naturlig för Manju eftersom han tillbringade de tre föregående åren med att arbeta med icke-grafiska arbetsbelastningar för mycket parallella processorer. Två år senare tog Manju vägen till AMD för att fortsätta sin vision för heterogent datorarbete på GPU:er. Hans nuvarande roll är som Corporate VP of Heterogeneous Applications and Developer Solutions på AMD.
Med tanke på vad vi vet om den nya AMD och dess mål att bygga en heterogen systemarkitektur (HSA), är Manjus position ganska viktig. För er som inte minns tillbaka till AMDs 2012 Financial Analyst Day, är den formaliserade AMD-strategin att utnyttja sina GPU-fördelar på APU-fronten på så många marknader som möjligt. AMD har en betydande GPU-prestandafördel jämfört med Intel, men för att dra nytta av det behöver den utvecklarstöd för heterogen beräkning. En stor kamp för alla i GPGPU-området var att möjliggöra applikationer som utnyttjade de otroliga hästkrafter som dessa processorer erbjöd. Med AMD:s strategi nära förenad med att göra mer (men inte alla, därav det heterogena prefixet) beräkningar på GPU:n, måste den lyckas där andra har misslyckats.
Hårdvarustrategin är tydlig: bygg inte bara diskreta CPU:er och GPU:er, utan övergå istället till APU:er. Detta är inget nytt eftersom både AMD och Intel var på väg i denna riktning i flera år. Där AMD utmärker sig är att den är villig att dedikera fler transistorer till GPU:n än Intel. CPU och GPU behandlas nästan som jämställda medborgare på AMD APU:er, åtminstone när det kommer till området.
Programvarustrategin är vad AMD arbetar med nu. AMD:s Fusion12 Developer Summit (AFDS), under sitt andra år, är dit utvecklare kan gå för att lära sig mer om AMD:s heterogena datorplattform och strategi. Varför skulle en utvecklare delta? AMD hävdar att hastighetshöjningarna som erbjuds av heterogen datorer kan vara tillräckligt betydande för att de skulle kunna möjliggöra nya funktioner, användningsmodeller eller upplevelser som annars inte skulle vara möjliga. Med andra ord kan dra fördel av heterogen beräkning möjliggöra differentiering för en utvecklare.
Inför årets AFDS gick Manju med på att direkt svara på dina frågor om heterogen datoranvändning, vart branschen är på väg och allt annat som AMD kommer att ta upp på AFDS. Idag har vi de svaren.
Hur Fusion och HSA skiljer sig
Först och främst har AMD varit nere på GPGPU-vägen tidigare med Fusion. Kan du förklara hur HSA skiljer sig?
Befintliga API:er för GPGPU är inte de lättaste att använda och har inte fått någon utbredd användning av vanliga programmerare. I HSA har vi tagit en titt på alla problem med programmering av GPU:er som har hindrat mainstream-antagandet av heterogena datorer och ändrat hårdvaruarkitekturen för att ta itu med dem. Faktum är att målet med HSA är att göra GPU:n i APU:n till en förstklassig programmerbar processor lika lätt att programmera som dagens CPU:er. I synnerhet innehåller HSA kritiska hårdvarufunktioner som åstadkommer följande:
1. GPU Compute C++-stöd: Detta gör heterogen datoråtkomst till många av de programmeringskonstruktioner som bara CPU-programmerare kan komma åt idag
2. HSA Memory Management Unit: Detta gör att allt systemminne är tillgängligt för både CPU eller GPU, beroende på behov. I dagens värld kan endast en delmängd av systemminnet användas av GPU:n.
3. Unified Address Space för CPU och GPU: Det enhetliga adressutrymmet gör det enkelt att programmera för utvecklare att skapa applikationer. Genom att inte kräva separata minnespekare för CPU och GPU kan biblioteken förenkla sina gränssnitt
4. GPU använder sökbart systemminne via CPU-pekare: Detta är första gången som GPU:n kan dra fördel av CPU:ns virtuella adressutrymme. Med sökbart systemminne kan GPU:n referera till data direkt i CPU-domänen. I alla tidigare generationer måste data kopieras mellan de två utrymmena eller sidlåsas före användning
5. Fullständigt sammanhängande minne mellan CPU och GPU: Detta gör att data kan cachelagras i CPU:n eller GPU:n och refereras av någon av dem. I alla tidigare generationer behövde GPU-cacher spolas vid kommandobuffertgränserna innan CPU-åtkomst. Och till skillnad från diskreta GPU:er delar CPU och GPU en sammanhängande höghastighetsbuss
6. GPU-beräkningskontextväxel och GPU-grafikföreträde: GPU-uppgifter kan kontextväxlas, vilket gör GPU:n i APU:n till en multi-tasker. Kontextväxling innebär snabbare applikations-, grafik- och datorinteroperation. Användare får en snabbare, mer interaktiv upplevelse. Eftersom användargränssnitten blir allt mer beröringsfokuserade är det avgörande för applikationer som försöker svara på beröringsindata för att få tillgång till GPU:n med lägsta möjliga latens för att ge användarna omedelbar feedback på deras interaktioner. Med kontextväxling och pre-emption läggs tidskritiskhet till de uppgifter som tilldelats processorerna. Direkt åtkomst till hårdvaran för flera användare eller flera applikationer antingen prioriteras eller utjämnas
Som ett resultat är HSA en specialdesignad arkitektur för att göra det möjligt för mjukvaruekosystemet att kombinera och utnyttja de kompletterande funktionerna hos CPU:er (sekventiell programmering) och GPU:er (parallell bearbetning) för att leverera nya funktioner till användare som går utöver de traditionella användningsscenarierna. Det kan vara första gången ett processorföretag har gjort en så betydande investering, främst för att förbättra programmeringsvänligheten!
Dessutom på en HSA-arkitektur kodar applikationen till hårdvaran vilket möjliggör köbildning i användarläge, hårdvaruschemaläggning och mycket lägre leveranstider och minskad minnesdrift. Vi eliminerar minneskopior, minskar leveranskostnader, eliminerar onödig drivrutinskod, eliminerar cache-tömningar och gör att GPU kan tillämpas på nya arbetsbelastningar. Vi har gjort omfattande analyser av flera arbetsbelastningar och har erhållit betydande prestanda per joule-besparingar för arbetsbelastningar som ansiktsdetektering, bildstabilisering, gestigenkänning etc…
Slutligen har AMD uttalat från början att vår avsikt är att göra HSA till en öppen standard, och vi har arbetat med flera industripartners som delar vår vision för branschen och delar vårt engagemang för att få denna enkla form av heterogen datoranvändning att bli utbredd i industrin. Även om jag inte kan gå in på detaljerna just nu, förväntar jag mig att höra mer om detta om några veckor på AMD Fusion Developer Summit (AFDS).
Så du ser varför HSA är annorlunda och varför vi är glada 🙂