Khronos Connects Software to Silicon

Similar documents
Copyright Khronos Group Page 1. Vulkan Overview. June 2015

SIGGRAPH Briefing August 2014

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Copyright Khronos Group Page 1

Update on Khronos Open Standard APIs for Vision Processing Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem

Copyright Khronos Group Page 1

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1

Accelerating Vision Processing

Navigating the Vision API Jungle: Which API Should You Use and Why? Embedded Vision Summit, May 2015

Copyright Khronos Group Page 1

Copyright Khronos Group Page 1

Copyright Khronos Group Page 1

Ecosystem Overview Neil Trevett Khronos President NVIDIA Vice President Developer

Vulkan Launch Webinar 18 th February Copyright Khronos Group Page 1

OpenCL Overview. Shanghai March Neil Trevett Vice President Mobile Content, NVIDIA President, The Khronos Group

Open API Standards for Mobile Graphics, Compute and Vision Processing GTC, March 2014

Open Standard APIs for Augmented Reality

Copyright Khronos Group 2012 Page 1. OpenCL 1.2. August 2012

Vulkan 1.1 March Copyright Khronos Group Page 1

OpenCL Press Conference

WebGL Meetup GDC Copyright Khronos Group, Page 1

Open Standards for Building Virtual and Augmented Realities. Neil Trevett Khronos President NVIDIA VP Developer Ecosystems

Open Standards for Vision and AI Peter McGuinness NNEF WG Chair CEO, Highwai, Inc May 2018

Mobile AR Hardware Futures

Khronos and the Mobile Ecosystem

SYCL for OpenCL in a Nutshell

Silicon Acceleration APIs

Overview and AR/VR Roadmap

Copyright Khronos Group Page 1. OpenCL BOF SIGGRAPH 2013

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

Copyright Khronos Group, Page 1. Khronos Overview. Taiwan, February 2012

Copyright Khronos Group, Page 1. OpenCL. GDC, March 2010

Graphics Technology Update

Copyright Khronos Group Page 1

HSA foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room A. Alario! 23 November, 2015!

The OpenVX Computer Vision and Neural Network Inference

Open Standards for AR and VR Neil Trevett Khronos President NVIDIA VP Developer January 2018

OpenCL: History & Future. November 20, 2017

Open Standard APIs for Embedded Vision Processing

Standards for Vision Processing and Neural Networks

AR Standards Update Austin, March 2012

HKG OpenCL Support by NNVM & TVM. Jammy Zhou - Linaro

Copyright Khronos Group Page 1

KHRONOS STANDARDS UPDATE. Neil Trevett, GTC, 26 th March 2018

Standards Update. Copyright Khronos Group Page 1

WebGL, WebCL and OpenCL

CLICK TO EDIT MASTER TITLE STYLE. Click to edit Master text styles. Second level Third level Fourth level Fifth level

Colin Riddell GPU Compiler Developer Codeplay Visit us at

EECS 487: Interactive Computer Graphics

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Working with Metal Overview

The Role of Standards in Heterogeneous Programming

WebGL, WebCL and Beyond!

Khronos Updates GDC 2017 Neil Trevett Vice President Developer Ecosystem, NVIDIA President,

Vision Acceleration. Launch Briefing October Neil Trevett Vice President Mobile Ecosystem, NVIDIA President, Khronos Group

Creating the Embedded Media Processing Ecosystem

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

Bifrost - The GPU architecture for next five billion

More performance options

OpenCL C++ kernel language

Modern Processor Architectures (A compiler writer s perspective) L25: Modern Compiler Design

OpenMAX AL, OpenSL ES

Neural Network Exchange Format

Renderscript Accelerated Advanced Image and Video Processing on ARM Mali T-600 GPUs. Lihua Zhang, Ph.D. MulticoreWare Inc.

Open Standards for Today s Gaming Industry

Next Generation Visual Computing

DEVELOPER DAY MONTRÉAL APRIL Copyright Khronos Group Page 1

HETEROGENEOUS SYSTEM ARCHITECTURE: PLATFORM FOR THE FUTURE

Prospects for a more robust, simpler and more efficient shader cross-compilation pipeline in Unity with SPIR-V

Standards for WebVR. Neil Trevett. Khronos President Vice President Mobile Content,

Modern Processor Architectures. L25: Modern Compiler Design

KHRONOS STANDARDS UPDATE. Neil Trevett, GTC, 26 th March 2018

Higher Level Programming Abstractions for FPGAs using OpenCL

Enabling a Richer Multimedia Experience with GPU Compute. Roberto Mijat Visual Computing Marketing Manager

Unleashing the benefits of GPU Computing with ARM Mali TM Practical applications and use-cases. Steve Steele, ARM

The State of Gaming APIs

SYCL for OpenCL. in a nutshell. Maria Rovatsou, Codeplay s R&D Product Development Lead & Contributor to SYCL. IWOCL Conference May 2014

THE HETEROGENEOUS SYSTEM ARCHITECTURE IT S BEYOND THE GPU

OpenCL 1.0 to 2.2 : a quick survey

Neil Trevett Vice President Mobile Ecosystem, NVIDIA President, Khronos Group. Copyright Khronos Group Page 1

Dave Shreiner, ARM March 2009

Copyright Khronos Group, Page 1

Taipei Embedded Outreach OpenCL DSP Profile Proposals

Copyright Khronos Group, Page 1 SYCL. SG14, February 2016

Copyright Khronos Group Page 1. Introduction to SYCL. SYCL Tutorial IWOCL

Introduction to OpenGL ES 3.0

Vulkan API 杨瑜, 资深工程师

The Mobile Advantage. Erik Noreke Independent Standardization Consultant Chair, OpenSL ES. Copyright Khronos Group, Page 1

Parallel Programming on Larrabee. Tim Foley Intel Corp

Streaming Media. Advanced Audio. Erik Noreke Standardization Consultant Chair, OpenSL ES. Copyright Khronos Group, Page 1

Khronos Connects Software to Silicon

GDC 2014 Barthold Lichtenbelt OpenGL ARB chair

Khronos Overview The State of the Art in Open Standards for Visual Computing

GDC, March 2015 Copyright Khronos Group Page 1

Heterogeneous Computing

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Going to cover; - Why we have SPIR-V - Brief history of SPIR-V - Some of the core required features we wanted - How OpenCL will use SPIR-V - How

Introduction to Mobile Development

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

Transcription:

Press Pre-Briefing GDC 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem All Materials Embargoed Until Tuesday 3 rd March, 12:01AM Pacific Time Copyright Khronos Group 2015 - Page 1 Khronos Connects Software to Silicon Open Consortium creating ROYALTY-FREE, OPEN STANDARD APIs for hardware acceleration Defining i the roadmap for low-level silicon interfaces needed on every platform Graphics, compute, rich media, vision, sensor and camera processing Rigorous specifications AND conformance tests for crossvendor portability Acceleration APIs BY the Industry FOR the Industry Well over a BILLION people use Khronos APIs Every Day Copyright Khronos Group 2015 - Page 2 1

Significant Khronos API Ecosystem Advances Reveal of Vulkan API next generation graphics API - Low overhead, high-efficiency graphics and compute on GPUs - Formerly discussed as Next Generation OpenGL Initiative - Reveal and demos at GDC no formal specification yet SPIR-V paradigm shift to support both graphics and compute constructs - Now will be used by both Vulkan AND OpenCL 2.1 - Provisional specification released OpenCL 2.1 provisional specification released - C++ Kernel language, SPIR-V in core - Provisional specification released Copyright Khronos Group 2015 - Page 3 The Need for Vulkan Ground-up design of a modern open standard API for driving high-efficiency graphics and compute on GPUs used across diverse devices In the twenty two years since OpenGL was invented the architecture of GPUs and platforms has changed radically GPUs being used for graphics, compute and vision processing on a rapidly increasing diversity of platforms increasing the need for cross-platform standards Copyright Khronos Group 2015 - Page 4 2

Vulkan Explicit GPU Control Complex drivers lead to driver overhead and cross vendor unpredictability Error management is always active Driver processes full shading language source Application Traditional graphics drivers include significant context, memory and error management Application responsible for memory allocation and thread management to generate command buffers Direct GPU Control Simpler drivers for low-overhead efficiency and cross vendor portability Layered architecture so validation and debug layers can be unloaded when not needed Run-time only has to ingest SPIR-V intermediate language Separate APIs for desktop and mobile markets GPU GPU Unified API for mobile, desktop, console and embedded platforms Vulkan delivers the maximized performance and cross platform portability needed by sophisticated engines, middleware and apps Copyright Khronos Group 2015 - Page 5 Cross Platform Challenge An explicit API that is also cross-platform needs careful design One family of GPUs One OS One GPU on one OS All Modern Platforms and GPUs A challenge that needs... Participation of key players Proven IP Framework Battle-tested cooperative model The drive to not let the 3D industry fragment Copyright Khronos Group 2015 - Page 6 3

Vulkan Multi-threading Efficiency Thread Command Buffer 1. Multiple threads can construct Command Buffers in parallel Application is responsible for thread management and synch Command Buffer Thread Thread Thread Command Buffer Command Queue GPU Command Buffer Thread 2. Command Buffers placed in Command Queue by separate submission thread Thread Command Buffer Copyright Khronos Group 2015 - Page 7 Vulkan Enhancing Driver Reliability Streamlined API is easier to implement and test SPIR-V intermediate language improves shader program portability and reduces driver complexity Crossvendor Portability Open source conformance test source components for community engagement Copyright Khronos Group 2015 - Page 8 4

Vulkan Tools Architecture Layered design for cross-vendor tools innovation and flexibility - IHVs plug into a common, extensible architecture for code validation, debugging and profiling during development without impacting production performance Common Loader used to enable use of tools layers during debug - Cross-vendor API calls provide debug data Production Path (Performance) Vulkan-based Title Debug Layers can be installed during Development Interactive Debugger Validation Layers Vulkan s Common Loader IHV s Installable Client Driver Debug Layers Debug information via standardized API calls Copyright Khronos Group 2015 - Page 9 Vulkan Tools Ecosystem Extensible modular architecture encourages many fine-grained layers - new layers can be added easily Khronos encouraging open community of tools e.g. shader debugging Valve, LunarG, Codeplay and others are already driving the development of open source Vulkan tools Customized interactive debugging and validation layers will be available together with first drivers Prototype Vulkan Debugger from Valve and LunarG Copyright Khronos Group 2015 - Page 10 5

SPIR-V Unleashes Language Innovation First open standard cross-api intermediate language for parallel compute and graphics - Can natively represent Vulkan and OpenCL source languages - Including full flow control, graphics and parallel constructs not in LLVM Fully specified Khronos-defined standard - Khronos is working on creating SPIR-V <-> LLVM conversion tools Splitting the Compiler Chain enables parallel software/hardware innovation - Front-ends for languages can access multiple production quality backends - Back-ends using multicore, GPU, vector, VLIW or other technologies can reuse production quality language frontends and abstractions - Tooling encourages innovation in advanced program analysis and optimization of Front-end Languages and Frameworks programs in SPIR form Standard Portable Tools Intermediate Representation Multiple Hardware Architectures Backends Copyright Khronos Group 2015 - Page 11 SPIR-V for Developers Developers can use same front-end compiler across multiple platforms - Eliminating major source of cross-vendor portability Reduces runtime shader compilation time - Driver only has to process SPIR-V not full source language Don t have to ship shader source code - Provides a measure of IP protection SPIR-V is core in OpenCL 2.1 AND Vulkan - Exposes machine model for OpenCL 1.2, 2.0, 2.1 and Vulkan - Supports OpenCL 1.2, 2.0, 2.1 kernel languages - Supports GLSL shader language g (under development) SIGNIFICANT OPPORTUNITY TO LEVERAGE AND CONVERGE LANGUAGES FOR GRAPHICS AND COMPUTE Copyright Khronos Group 2015 - Page 12 6

Vulkan Language Ecosystem GLSL Shader Source GLSL will be first shading language supported by Vulkan Game Engines Can flexibly target SPIR-V and Vulkan back-ends Future diversity in domain- specific languages, frameworks and tools Khronos is considering open sourcing compiler front-ends GLSL to SPIR-V Translator E.g. C++ Shading Language SPIR-V supported in Vulkan core Vulkan Runtime Device X Device Y Device Z Copyright Khronos Group 2015 - Page 13 Ground-up Explicit API Redesign Originally architected for graphics workstations with direct renderers and split memory Driver does lots of work: state validation, dependency tracking, error checking. Limits and randomizes performance Threading model doesn t enable generation of graphics commands in parallel to command execution Syntax evolved over twenty years complex API choices can obscure optimal performance path Shader language compiler built into driver. Only GLSL supported. Have to ship shader source Despite conformance testing developers must often handle implementation variability between vendors Matches architecture of modern platforms including mobile platforms with unified memory, tiled rendering Explicit API the application has direct, predictable control over the operation of the GPU Multi core friendly with multiple command buffers that can be created in parallel Removing legacy requirements simplifies API design, reduces specification size and enables clear usage guidance SPIR V as compiler target simplifies driver and enables front end language flexibility and reliability Simpler API, common language front ends, more rigorous testing increase cross vendor functional/performance portability Copyright Khronos Group 2015 - Page 14 7

Vulkan Status Rapid progress since June 2014 - Significant proposals and IP contributions received from members Participants come from all segments of the graphics industry - Including an unprecedented level of participation from game engine ISVs Initial specs and implementations expected this year - Will work on any platform that supports OpenGL ES 3.1 and up Working Group Participants Copyright Khronos Group 2015 - Page 15 OpenCL Portable Heterogeneous Computing Portable Heterogeneous programming of diverse compute resources - Targeting supercomputers -> embedded systems -> mobile devices One code tree can be executed on s, GPUs, DSPs, FPGA and hardware - Dynamically interrogate t system load and balance work across available processors OpenCL = Two APIs and Kernel language - C Platform Layer API to query, select and initialize compute devices - C Runtime API to build and execute kernels across multiple devices GPU DSP OpenCL Kernel OpenCL Code Kernel OpenCL Code Kernel OpenCL Code Kernel Code FPGA HW Copyright Khronos Group 2015 - Page 16 8

OpenCL 2.1 Provisional Released! New OpenCL C++ kernel language based on a subset of C++14 - Significantly enhanced programmer productivity - OpenCL C still supported to preserve kernel code investment Support for the new Khronos SPIR-V intermediate language in core - SPIR-V now used by both OpenCL 2.1 and the new Vulkan graphics API - OpenCL 1.2 and 2.0 kernel languages also supported by SPIR-V for backwards compatibility Dec08 OpenCL 1.0 Specification 3-component vectors Additional image formats Multiple hosts and devices Buffer region operations Enhanced event-driven execution Additional OpenCL C built-ins Improved OpenGL data/event interop Jun10 Device partitioning i Separate compilation and linking Enhanced image support Built-in kernels / custom devices Enhanced DX and OpenGL Interop Nov11 18 months 18 months 24 months OpenCL 1.1 Specification OpenCL 1.2 Specification Shared Virtual Memory On-device dispatch Generic Address Space Enhanced Image Support C11 Atomics Pipes Android ICD Nov13 OpenCL 2.0 Specification OpenCL C++ Shading language SPIR-V in Core Subgroups into core Subgroup query operations clclonekernel Low-latency device timer queries 16 months Mar15 OpenCL 2.1 Specification (Provisional) Copyright Khronos Group 2015 - Page 17 New OpenCL 2.1 Compiler Ecosystem OpenCL C Kernel Source Alternative Language Diverse, Alternative Language for domainspecific for Languages, Kernels Kernels frameworks and tools OpenCL C++ Kernel Source SPIR Generator (e.g. patched Clang) https://github.com/khronosgroup/spir OpenCL C++ to SPIR-V Compiler Khronos considering open source project for OpenCL C++ front-end SPIR-V is more rigorous compiler target than OpenCL C OpenCL Runtime OpenCL 2.1 runtime can ingest OpenCL C OR SPIR-V Device X Device Y Device Z Copyright Khronos Group 2015 - Page 18 9

OpenCL as Parallel Language Backend Approaching 200 languages, framework an projects using OpenCL as a back-end JavaScript binding for initiation of OpenCL C kernels Language for image processing and computational photography MulticoreWare open source project on Bitbucket Embedded array language for Haskell Java language extensions for parallelism River Trail Language extensions to JavaScript Compiler directives for Fortran, C and C++ PyOpenCL Python wrapper around OpenCL Harlan High level language for GPU programming Support for SPIR-V in OpenCL core will accelerate this trend as it is a more rigorously defined compiler target than OpenCL C OpenCL provides vendor optimized, cross-platform, cross-vendor access to heterogeneous compute resources Copyright Khronos Group 2015 - Page 19 OpenCL C++ The OpenCL C++ kernel language is a static subset of C++14 - Frees developers from low-level coding details without sacrificing performance C++14 featured removed from OpenCL C++ for parallel programming - Throwing and catching exceptions (throw, catch) - Allocation and release of memory (new, delete) - Virtual functions and abstract classes (virtual) - Function pointers, Recursion and goto Classes, lambda functions, templates, operator overloading etc.. - Fast and elegant sharable code - reusable device libraries and containers - Compile-time polymorphism via template meta-programming for highly adaptive software that delivers tuned performance across diverse platforms Copyright Khronos Group 2015 - Page 20 10

OpenCL 2.1 API Enhancements Subgroup functionality moved into core with additional subgroup query operations - Expose hardware threads/warps/wavefronts and their cross-lane operations - Host queries for forward progress extension, and workgroup->subgroup mapping clclonekernel enables copying of kernel objects and state - Safe implementation of copy constructors in wrapper classes - Used to pass kernel to second host thread, or for C++ wrappers for kernel objects Low-latency device timer queries - Support alignment of profiling data between device and host code clcreateprogramwithil - Enables ingestion of SPIR-V code by the runtime Pi Priority i and throttle hint extensions for queues - Specify execution priority on a per-queue basis Zero-size enqueue - Zero-sized dispatches are valid from the host Copyright Khronos Group 2015 - Page 21 Khronos Open Standards for Graphics and Compute A comprehensive family of APIs to address the full spectrum of developer requirements 1990 s Workhorse cross-platform API for professional 3D apps and gaming 2000 s Ubiquitous API for mobile gaming and general purpose graphics 2008 Heterogeneous parallel computation Portable intermediate representation for graphics and parallel compute 2014 High-efficiency GPU graphics and compute API for performance critical apps 2015 All APIs will be evolved and maintained to meet industry needs. Rich mix of open technologies for future innovation Copyright Khronos Group 2015 - Page 22 11

Call to Action Special Khronos sessions at GDC for more details: - Details in press releases and here: - https://www.khronos.org/news/events/gdc-2015 Khronos seeking feedback on Vulkan, SPIR and OpenCL 2.1 - Links provided on Khronos forums - https://www.khronos.org/opencl/opencl_feedback_forum - https://www.khronos.org/spir_v_feedback_forum - https://www.khronos.org/vulkan/vulkan_feedback_forum Any company or organization is welcome to join Khronos for a voice and a vote in any of these standards - www.khronos.org - ntrevett@nvidia.com Copyright Khronos Group 2015 - Page 23 12