Vulkan Launch Briefing - The Khronos Group Inc

Transcription

Vulkan Launch BriefingFebruary 2016Neil Trevett Khronos PresidentNVIDIA Vice President Developer Ecosystemntrevett@nvidia.com @neilt3d Copyright Khronos Group 2016 - Page 1

BOARD OF PROMOTERSOver 100 members worldwideany company is welcome to join Copyright Khronos Group 2016 - Page 2

Khronos Connects Software to SiliconIndustry Consortium creating OPEN STANDARD APIs for hardware accelerationAny company is welcome – one company one voteROYALTY-FREE specificationsState-of-the art IP framework protectsmembers AND the standardsLow-level silicon APIsneeded on almost every platform:graphics, parallel compute,rich media, vision, sensorand camera processingSoftwareSiliconConformance Tests and AdoptersPrograms for specification integrityand cross-vendor portabilityInternational, non-profit organizationMembership and Adopters fees coveroperating and engineering expensesStrong industry momentum100s of man years invested by industry expertsWell over a BILLION people use Khronos APIs Every Day Copyright Khronos Group 2016 - Page 3

The Need for New Generation GPU APIsOpenGL has evolved over 25years - API complexity canobscure optimal performancepath and hinder portabilityGPUs are increasingly compute ANDgraphics capable platforms arebecoming unified and multi-coreGPUs accelerate graphics,compute, vision and deeplearning across diverse platforms:PORTABILITY is key Copyright Khronos Group 2016 - Page 4

Vulkan 1.0 Launched! Khronos’ first API ‘hard launch’- Specification, Conformance Tests, SDKs - all in open source- Reference Materials, Compiler front-ends, Samples Conformant Drivers from multiple hardware vendors- Across multiple OS LunarG SDK for Vulkan on Windows and Linux (Android soon)- Free and open source A Vulkan game on Steam: Talos Principle Vulkan back-end in betaFor preorder on AmazonImage Courtesy CroteamImage Courtesy NVIDIA Copyright Khronos Group 2016 - Page 5

Vulkan Working Group Vulkan 1.0 specification and implementations created in 18 months- More energy and participation than any other API in Khronos history Significant proposals and IP contributions received from members- A true working group effort Participants come from all segments of the graphics industry- Including an unprecedented level of participation from game engine ISVsWorking Group Participants Copyright Khronos Group 2016 - Page 6

Conformant Vulkan Drivers at Launch 30 Driver submissions passed conformance at Vulkan 1.0 launch- Imagination Technologies: Linux- Intel: Linux- NVIDIA: Android 6.0, Linux (desktop and embedded), Windows 7-10- Qualcomm: Android 6.0 Drivers in test Submission review at Vulkan 1.0 launch- AMD: Windows- ARM: LinuxOpen source Vulkanconformance test suitehosted on GitHubKhronos and Androidleveraging and mergingVulkan tests with theAndroid Open SourceProject (AOSP) andDrawElements QualityProgram nceTest SuiteImplementersmust passTest SuiteAOSP/dEQPFrameworkand TestsCommunityTestContributionsEnable developers to providedirect feedback andcontributions to help resolvecross-vendor inconsistenciesKhronos administeredVulkan Adopters Program.Implementations that passtest process may useVulkan trademark Copyright Khronos Group 2016 - Page 7

Vulkan Developer Resources at LaunchKhronos.org(open source resources in github.com/KhronosGroup)Specifications SourceHeader SourceFeature Set Definitions(Windows and Linux - post developer feedback)Quick ReferenceReference Pages (Vulkan and WSI)Conformance Test Source and Test ProcessCompiler toolchain sourcesValidation Layer SourceLoader SourceLayers and Loader documentationCommunity ContributionsEverything needed to create SDKsfor any platform or marketLunarGWindows and Linux Installable SDKsLoader and Validation Layer binariesTools Layers - source and binariesSamples - source and binariesWindows get started guideIHV WebsitesDrivers and LoaderVendor tools and layersThird Party WebsitesLayers, Samples etc. Copyright Khronos Group 2016 - Page 8

LunarG SDK for Vulkan Valve sponsored LunarG to develop a free, open source SDK for Vulkan- Utilities, samples, debugging tools, documentation- For Windows and Linux on launch – Android coming soon Validation Layer – checks many aspects of Vulkan code:- Device limits, draw state, parameter values- Multi-thread object access rules, texture and render target formats- Object Tracker, Memory Trackervulkan.lunarg.com Other SDK Tools- Trace and replay tools- GLSL Validator- SPIR-V Disassembler and Assembler RenderDoc Graphics debugger- Free and open source- Adding Vulkan support- https://github.com/baldurk/renderdoc Copyright Khronos Group 2016 - Page 9

Vulkan Ecosystem Already ActiveVulkan and OpenGL ESover Metal - in development“By building your application or game using theVulkan API, you can run your modern graphicsapplication or game unchanged across an entireindustry of platforms and development tools”Brenwill Workshop“Vulkan has a huge potential! We'reonly scratching the surface of what canbe done with it, and porting The TalosPrinciple to Vulkan should be seen as aproof of concept,” said Dean Sekulicgraphics engine specialist at Croteam.“Vulkan in just one sentence? Theendless war between performance andportability is finally over!”Talos Principle on Steam hasbeta Vulkan back-end Copyright Khronos Group 2016 - Page 10

Vulkan Explicit GPU ControlError management isalways activeApplicationTraditionalgraphicsdrivers includesignificantcontext, memoryand errormanagementGPUSimpler drivers for low-overheadefficiency and cross vendorconsistencyApplicationresponsible formemoryallocation andthreadmanagement togeneratecommand buffersDirect GPUControlLayered architecture so validationand debug layers can be loaded onlywhen neededDriverDriver compiles fullshading language sourceDriverComplex drivers lead to driveroverhead and cross vendorunpredictabilityRun-time only has to ingest SPIR-Vintermediate languageGPU Copyright Khronos Group 2016 - Page 11

What Developers have been asking for Leading EdgeGraphics Functionality at least developers that needand can benefit from explicitcontrol over GPU operationEquivalent to OpenGL in V1.0Same API for mobile, desktop,console and embeddedDefined ‘Feature Sets’ per platformNo need for ‘Vulkan ES’General Purpose ComputeExplicit APIGraphics AND compute queuesin a single APIDirect control over GPU and memoryallocation for less hitches and surprisesEfficient Multi-threadingPrecompiled ShadersSPIR-V for shading language flexibilityincluding C Programming (future)FUNCTIONALITYUse multiple CPU cores tocreate command buffers in parallelClean, Streamlined APILow Driver OverheadEasier to program, implement andtest for cross-vendor consistencyPERFORMANCEPORTABILITYThinner, simpler driverreduces CPU bottlenecks and latency Copyright Khronos Group 2016 - Page 12

Next Generation GPU APIsOnly Windows 10Only AppleCross PlatformAny OpenGL ES 3.1/4.X GPU Copyright Khronos Group 2016 - Page 13

Vulkan - No Compromise PerformancePotential Performance GainRetains Traditional Binding Model(but missing functionality such as Tessellation and Geometry Shaders)Amount of work to port from traditionalOpenGL and OpenGL ES Copyright Khronos Group 2016 - Page 14

Which Developers Should Use Vulkan? For many developers OpenGL and OpenGL ES will remain the most effective APIIs your appCPU bound?YesYesYesYou puta premium onavoidinghitchesYesYou’lldo whateverit takes to squeezeout maximumperformanceYesCan your graphicswork creation beparallelized?YesYesYesYou canmanage yourgraphics resourceallocations Copyright Khronos Group 2016 - Page 15

The Power of a Three Layer EcosystemApplicationscan use Vulkandirectly formaximumflexibility andcontrolApplication usesutility libraries tospeeddevelopmentUtility librariesand layersApplicationApplications using game engineswill automatically benefit fromVulkan’s enhanced performanceGame Enginesfully optimizedover VulkanRich Area for Innovation Many utilities and layers will be in open source Layers to ease transition from OpenGL Domain specific flexibilityThe same ecosystem dynamic as WebGLA widely pervasive, powerful, flexible foundation layer enables diverse middleware tools and libraries Copyright Khronos Group 2016 - Page 16

Vulkan Tools Architecture Layered design for cross-vendor tools innovation and flexibility- IHVs plug into a common, extensible architecture for code validation, debuggingand profiling during development without impacting production performance Khronos Open Source Loader enables use of tools layers during debug- Finds and loads drivers, dispatches API calls to correct driver and layersProduction Path(Performance)Vulkan-based TitleDebug Layers can beinstalled during DevelopmentInteractiveDebuggerValidation LayersVulkan’s Common LoaderDebug LayersIHV’s Installable ClientDriverDebug information viastandardized API calls Copyright Khronos Group 2016 - Page 17

Vulkan Multi-threading Efficiency1. Multiple threads can construct Command Buffers in parallelApplication is responsible for thread management and andBufferCPUThreadCPUThreadCPUThreadGPU2. Command Buffers placed in CommandQueue by separate submission threadCan create graphics, compute and DMAcommand buffers with a general queuemodel that can be extended to moreheterogeneous processing in the future Copyright Khronos Group 2016 - Page 18

Vulkan Feature Sets Vulkan supports hardware with a wide range of hardware capabilities- Mobile OpenGL ES 3.1 up to desktop OpenGL 4.5 and beyond One unified API framework for desktop, mobile, console, and embedded- No "Vulkan ES" or "Vulkan Desktop" Vulkan precisely defines a set of "fine-grained features"- Features are specifically enabled at device creation time (similar to extensions) Platform owners define a Feature Set for their platform- Vulkan provides the mechanism but does not mandate policy- Khronos will define Feature Sets for platforms where owner is not engaged Khronos will define feature sets for Windows and Linux- After initial developer feedback Copyright Khronos Group 2016 - Page 19

Vulkan Window System Integration (WSI) Explicit control for acquisition and presentation of images- Designed to fit the Vulkan API and today’s compositing window systems- Cleanly separates device creation from window system Platform provides an array of persistent presentable images Vulkan Swapchain- Device exposes which queues support presentation- Application explicitly controls which image to render and present Standardized extensions - unified API for multiple window systems- Works across Android, Mir, Windows (Vista and up), Wayland and X (with DRI3)- Platforms can extend functionality, define custom WSI stack, or have no display at allVkQueueTransitionto formWSIExtensionExplicit control foracquisition and presentation of imagesCustomWSIExtensionPresentTransitionto RenderImageXImageYTransitionto PresentPresentTransitionto RenderImageYImageXTimeCompositor or Display Engine Copyright Khronos Group 2016 - Page 20

SPIR-V Transforms the Language Ecosystem First multi-API, intermediate language for parallel compute and graphics- Native representation for Vulkan shader and OpenCL kernel source languages- tePaper.pdf Cross vendor intermediate representation- Language front-ends can easily access multiple hardware run-times- Acceleration hardware can leverage multiple language front-ends- Encourages tools for program analysis and optimization in SPIR formDiverse Languagesand FrameworksMultiple Developer AdvantagesSame front-end compiler for multiple platformsReduces runtime kernel compilation timeDon’t have to ship shader/kernel source codeDrivers are simpler and more reliableTools foranalysis andoptimizationHardwareruntimes onmultiple ation Copyright Khronos Group 2016 - Page 21

Evolution of SPIR Family SPIR–V is first fully specified Khronos-defined SPIR standard- Does not use LLVM to isolate from LLVM roadmap changes- Includes full flow control, graphics and parallel constructs beyond LLVM- Khronos will open source SPIR-V - LLVM conversion toolsSPIR 1.2SPIR 2.0SPIR-V 1.0LLVM InteractionUses LLVM 3.2Uses LLVM 3.4100% Khronos definedRound-trip lossless conversionCompute tiveGraphics ConstructsNoNoNativeSupportedLanguageFeature SetOpenCL C 1.2OpenCL C 1.2OpenCL C 2.0OpenCL C 1.2 / 2.0OpenCL C GLSLOpenCL IngestionOpenCL 1.2ExtensionOpenCL 2.0ExtensionOpenCL 2.1CoreVulkan Ingestion--Vulkan Core Copyright Khronos Group 2016 - Page 22

Driving the SPIR-V Open Source EcosystemGLSLKhronos will open sourcethese tools and translatorsOpenCL CThird party kernel andshader LanguagesOpenCL C SPIR-V ToolsSPIR-V ValidatorSPIR-V (Dis)AssemblerLLVMLLVM to msSPIR-V 32-bit Word Stream Extensible and easily parsed Retains data object and controlflow information for effectivecode generation and translationIHV DriverRuntimes Copyright Khronos Group 2016 - Page 23

Upcoming Vulkan Events Khronos Vulkan Webinar - February 18- https://www.khronos.org/news/events/vulkan-webinar Vulkan sessions at GDC – March 14-18- http://schedule.gdconf.com/search-sessions/vulkan Khronos Sessions co-located with GDC – March 16- essions-san-franciscoKhronos Vulkan sessions co-located with GDC Copyright Khronos Group 2016 - Page 24

Khronos Safety Critical Working Group2005OpenGL SC 1.0Fixed function graphics subset2003OpenGL ES 1.0Fixed function graphics2016 (planned)OpenGL SC 2.0Programmable shader pipeline subset2007OpenGL ES 2/3Programmable shader pipelineNew Generation API forsafety certifiablegraphics AND computeMany future safety critical usecases involve vision andcompute acceleration (e.g.neural nets)New Khronos Safety CriticalAdvisory PanelDefining guidelines for creatingspecifications for ISO 26262and DO-178B/C certification Copyright Khronos Group 2016 - Page 25

Khronos Roadmap DiscussionsSPIR-V Ingestion for OpenGL andOpenGL ES for shading language flexibilityKhronos members decide how toevolve and mix and match a richset of APIs and technologies tomeet market needsThin andpredictablegraphics andcompute for safetycritical systemsC Shading Language andOpenCL-class HeterogeneousCompute to Vulkan runtime Copyright Khronos Group 2016 - Page 26

Khronos Open Standards for Graphics and ComputeLATEST STATUS1990’sWorkhorse cross-platform professional 3D apps & gaming2000’sUbiquitous mobile gaming & graphics apps2005Safety Critical Graphics2008Heterogeneous parallel computePortable intermediate representationfor graphics and parallel compute2014High-efficiency GPU graphics andcompute for performance critical apps2016New Extensions to enable latestdesktop graphics capabilitiesOpenGL ES 3.2 released to bringAEP functionality to coreNew Safety Critical WorkingGroup – Call for ParticipationOpenCL 2.0 specification updateand C Headers releasedProvisional Spec Update andsignificant open source activityAdopted by Android and otherplatforms. Building ecosystem Copyright Khronos Group 2016 - Page 27

- NVIDIA: Android 6.0, Linux (desktop and embedded), Windows 7- 10 - Qualcomm: Android 6.0 Drivers in test Submission review at Vulkan 1.0 launch - AMD: Windows - ARM: Linux . Khronos . Generated . Tests . AOSP/dEQP . Framework and Tests . Vulkan Conformance Test Suite . Community Test Contributions . Implementers must pass Test Suite .