2018-Aug-18

Senast uppdaterad10:26:24 AM GMT

Vulkan 1.0 lanserad

Skriv ut

vulkan

Den 16 februari var dagen då en splitterny API lanserades för GPU. Khronos är mest känt för OpenGL, ett grafiksystem som används i de flesta mjukvaror idag.

Av Ralph Grabowski med Neil Trevet

Nu har de lanserat den nya generationens API som de kallar Vulkan. Jag intervjuade Khronos ledare Neil Trevett för att ta reda på vad det är och vad det kommer att innebära för CAD-användare. Trevett är också VD på NVIDIA.

Ralph Grabowski: Det här är första gången som jag har sett en arg tekanna!
Neil Trevett: Haha! Figurerna i illustrationen som pryder Vulkans logotyp är ikoniska 3D-modeller, men i en lite mer aggressiva tappning vilket är passande eftersom Vulkan har fått sitt namn efter den gamla gudomen för eld och smedja. Men det är det som står under loggan som är det viktiga, ”industry forged”, alltså skapandet av en ny slags näring.

Det innebär att industrin har gått ihop och efter 18 månaders arbete har vi tagit fram en öppen standard. Lanseringen av Vulkan 1.0 innehåller en open source SDK, lager med verktyg, drivrutiner från flera hårdvaruförsäljare och även shippingapplikationer.
Tidigare har vi haft releaser där vi bara har lanserat specifikationer. Med lanseringen av Vulkan tar Khronos ett stort steg framåt och uppåt. Till exempel är det här första gången som ett open source testcase har gjorts i en Silicon API (application programming interface). Det gör det möjligt för utvecklarna att skicka in test för att fixa buggar.

Grabowski: Vem är det tänkt ska använda Vulkan?
Trevett: Vulkan är till för utvecklare som är i behov av djupare kontroll över GPU:er för att skapa snabbare, smidigare och mer effektiva applikationer. Vulkan öppnar upp för en ny model av OpenGL genom att skapa mer utrymme för minne och resurshantering för applikationen.
Det betyder att en drivrutin i Vulkan är tunnar, har mindre latens och mindre överraskningar i drivrutinen. På så sätt skapar vi högre prestanda med mindre problem. Vulkan möjliggör också för multi-gängad CPU-acceleration genom att separera buffring av multikommande i minnet innan de skickas till GPU:n.

Det är bra för effektiv hantering av stora CAD-modeller, till exempel.

Å ena sidan så kan Vulkan vara svårare att använda eftersom applikationen gör jobb som användaren är van att göra själv. Å andra sidan så kommer många spel bara använda spelmotorer som får direkt fördel av Vulkan, som till exempel spel från Lucasfilm, EA, Valve och Unity. Många andra applikationsdomäner kommer antagligen att se ett starkt ekosystem för mellanprogramvara som byggs ovanpå vår nya API.

Grabowski: OpenGL, OpenCL, OpenSL ES… det verkar finnas många sådana här standards nu.
Trevett: Ja, Khronos har olika API-standarder för olika typer av acceleration. Om man tar OpenCL som exempel så är det till för parallella beräkningar medan Open SL ES är till för ljud.
De traditionella 3D-API är OpenGL för datorer och OpenGL ES för inbäddade och mobila system. En av de budskap jag vill poängtera till utvecklare är att OpenGL och OpenGL ES inte kommer att försvinna, de kommer att aktivt utvecklas många år framöver jämte Vulkan.

För applikationer som redan är GPU-baserade så är OpenGL redan lika snabb som Vulkan. Om du inte behöver den low level-access som Vulkan erbjuder är OpenGL mer okomplicerad att utveckla för, framförallt för de applikationer som redan använder OpenGL.

Grabowski: Det här innebar 18 månaders utvecklingsarbete med många i industrin. Varför vill industrin samarbeta med en ny API?
Trevett: Mjukvaru- och hårdvaruutvecklare har mycket att gagna av en API-standard som sträcker sig över många plattformar, eftersom den möjliggör för applikationer och acceleratorer att nå fler plattformar för en mindre kostnad. Det finns bara två andra API av den nya generationen, vilka är dessa:
DirectX 12 från Microsoft, som bara fungerar med Windows 10.
Metal från Apple, som bara fungerar med iOS och OS-system.
Vulkan är den enda moderna API:n som är en multi-vendor, öppen standard som går att köra på vilken plattform som helst.
Till exempel har Google sagt att de kommer att använda Vulkan som APU i en framtida version av Android, och Vulkan kan redan användas för Windows 7 – 10 och Linux. En ny generation av low level-API är viktigt för en smidig realtidsupplevelse och verktyg för det.

Grabowski: Apple är inte på er lista över sponsorer.
Trevett: Apple är Khronos medlem och är med i styrelsen över sponsorer, men du bör prata med Apple om de har några planar på att använda Vulkan. När det kommer till grafik-API:n så verkar det som om de försöker hålla sig ifrån öppna standarder. De har Metal, som är en skyddad API av den nya generationen och som använder mycket OpenGL ES och OpenCL-teknik. Den saknar däremot mosaikmönster och gemetrisk schattering. Det gör det svårare för utvecklare. Det finns inget som hindrar Apple från att använda Vulkan, om de vill göra det.

Grabowski: Vad är det som gör Vulkan så användbar?
Trevett: Det faktum att Vulkan är tunnare, enklare drivrutiner gör det enklare att skapa likartade drivrutiner över många distributörer. Vulkan använder vår SPIR-V (Standard Portable Intermediate Representation) för att möjliggöra för självständiga språkkompilatorer som inte är beroende av hårdvara, och undviker behovet av full kompilator i drivsystemet, som med OpenGL.
Vulkan definierar en rad funktioner som anpassar API:n till olika marknader och plattformar. En plattformsdistributör kan definiera funktioner för att skapa en pålitlig och funktionell bas för utvecklare. Den här flexibilitetet innebär att vi aldrig kommer att behöva en ”Vulkan ES” som vi behövde med OpenGL.

Grabowski: Vulkan verkar vara anpassad för spel. Hur skulle CAD-program har dra nytta av det?
Trevett: Vulkan är skapad för att skapa värde för vem som helst som är i behov av grafikapplikationer, inte bara till spel. Det är framförallt Vulkans multigängning som gör det möjligt för applikationer att generera multikommandon som buffrar parallellt. Det är framförallt värdefullt för applikationer som arbetar med stora CAD-modeller. Där kan Vulkan möjliggöra för smidigare designinteraktivitet. Den låga latensen och stabila prestandan innebär att Vulkan passar bra i VR-applikationer (virtual reality).

Grabowski: Kommer CAD-applikationer bli tvingade att använda Vulkan?
Trevett: Nej, inte alls. Spel kommer antagligen bli de första kommersiella applikationerna att lanseras med Vulkan. Varje ny generation av spel tenderar att ändra sin kod på ett sätt som CAD-applikationer inte kan göra.
De goda nyheterna är att OpenGL inte kommer att försvinna. Det utvecklas fortfarande aktivt av Khronos, vilket användare kommer att se. Visa grafikdistributörer, som NVIDIA, kan köra OpenGL och Vulkan sida vid sida för att möjliggöra för professionella designapplikationer. Till exempel kan de lämna sin UI i OpenGL och flytta deras model-view, som kräver hög prestanda, till Vulkan.

Grabowski: Jag noterade att Dassault Systemes är den enda CAD-medlemmen i arbetsgruppen. Vilken roll spelar de?
Trevett: Det var fantastiskt att Dassault anslöt sig till gruppen i ett tidigt skede. Deras roll var att bevaka CAD-industrins behov under arbetet med Vulkan. De var vårt CAD-samvete.

Grabowski: Varifrån kommer namnet Vulkan?
Trevett: Vi kunde ha gett den nya API:n en variant av OpenGL-namn, men till sist beslutade vi oss för att inte göra det. Den här nya specifikationen är inte en utveckling av OpenGL, den är en kompletterade API som lever jämte OpenGL.
Vi använde oss av antika namn på gudar och stavade dem med vilje fel, som Khronos (Chronos, på engelska, var den antika grekiska guden för tiden). Vulcan (på engelska) var guden för eld och smedja. Vi gillade tanken på industriell styrka som namnet gav bild av. Namnet kom inte från Star Trek!

Grabowski: Vulkan är gratis, så varför skulle en utvecklare behöva bli en del av er grupp?
Trevett: Vulkan är helt gratis för andvändare, som inte behöver vara en medlem hos Khronos för att kunna använda den.
Men om en hårdvaruutvecklare vill implementera en Vulkan-drivrutin eller processor och använder sig av varumärket Vulkan i deras implementation, så kan de bli en Vulkan Adopter. Att bli en Adopter ger access till Khronos processer och ger möjlighet att ladda upp testloggar till Vulkans arbetsgrupp, som undersöker dem. Implementationer kan använda sig av Khronos namn och logotyp och dra nytta av Khronos Intellectual Property framework som säkerställer att medlemmar inte hävdar sina patent mot dig för att du använt teknologin.
Alla företag, både om de är mjukvaru- eller hårdvaruutvecklare, är välkomna att gå med i Khronos. Medlemskap ger dem en röst i specifikationsdesignen och utvecklingen. De får också en inblick i vad som ligger i pipeline långt före resten av branschen.

 https://www.khronos.org/vulkan

ralf.grabowski.200px

Ralph Grabowski

Enligt ett avtal sprider NetCommunity valda delar ur Ralphs nyhetsbrev på svenska.
Fritt översatt av CADtorget i enlighet med ett avtal mellan CADtorget och Mr Grabowski.

TwitterFacebookDigg