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

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

Accelerating Vision Processing

Copyright Khronos Group Page 1

Khronos Connects Software to Silicon

Ecosystem Overview Neil Trevett Khronos President NVIDIA Vice President Developer

Copyright Khronos Group Page 1. Vulkan Overview. June 2015

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

SIGGRAPH Briefing August 2014

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

Copyright Khronos Group Page 1

Copyright Khronos Group Page 1

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

Copyright Khronos Group Page 1

Copyright Khronos Group Page 1

Silicon Acceleration APIs

Open Standard APIs for Augmented Reality

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

Vulkan Launch Webinar 18 th February Copyright Khronos Group Page 1

Standards for Vision Processing and Neural Networks

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

The OpenVX Computer Vision and Neural Network Inference

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

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

Vulkan 1.1 March Copyright Khronos Group Page 1

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

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

OpenCL Press Conference

Overview and AR/VR Roadmap

WebGL Meetup GDC Copyright Khronos Group, Page 1

Standards Update. Copyright Khronos Group Page 1

Copyright Khronos Group Page 1

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

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

Copyright Khronos Group Page 1

Mobile AR Hardware Futures

Open Standard APIs for Embedded Vision Processing

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

Khronos and the Mobile Ecosystem

EECS 487: Interactive Computer Graphics

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

AR Standards Update Austin, March 2012

Graphics Technology Update

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

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

Introduction to OpenGL ES 3.0

OpenCL: History & Future. November 20, 2017

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

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

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

Next Generation Visual Computing

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

WebGL, WebCL and Beyond!

Copyright Khronos Group Page 1. OpenCL BOF SIGGRAPH 2013

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

WebGL, WebCL and OpenCL

Neural Network Exchange Format

GPGPU on ARM. Tom Gall, Gil Pitney, 30 th Oct 2013

Open Standards for Today s Gaming Industry

HETEROGENEOUS SYSTEM ARCHITECTURE: PLATFORM FOR THE FUTURE

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

Dave Shreiner, ARM March 2009

Bifrost - The GPU architecture for next five billion

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

The State of Gaming APIs

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

POWERVR MBX & SGX OpenVG Support and Resources

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

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

PowerVR GPU IP from Wearables to Servers. Kristof Beets Director of Business Development May 2015

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

The Bifrost GPU architecture and the ARM Mali-G71 GPU

Modern Processor Architectures. L25: Modern Compiler Design

THE PROGRAMMER S GUIDE TO THE APU GALAXY. Phil Rogers, Corporate Fellow AMD

Colin Riddell GPU Compiler Developer Codeplay Visit us at

Multimedia in Mobile Phones. Architectures and Trends Lund

Profiling and Debugging Games on Mobile Platforms

DPDK Roadmap. Tim O Driscoll & Chris Wright Open Networking Summit 2017

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

Taipei Embedded Outreach OpenCL DSP Profile Proposals

Overview. Think Silicon is a privately held company founded in 2007 by the core team of Atmel MMC IC group

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Windowing System on a 3D Pipeline. February 2005

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

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

Acceleration Standards for Mobile Augmented Reality

Graph Streaming Processor

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Achieving High-performance Graphics on Mobile With the Vulkan API

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

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

ASYNCHRONOUS SHADERS WHITE PAPER 0

Technology and Design Tools for Multicore Embedded Systems Software Development

Working with Metal Overview

The Benefits of GPU Compute on ARM Mali GPUs

Copyright Khronos Group, Page 1

Copyright Khronos Group, Page 1

OpenGL BOF Siggraph 2011

Heterogeneous Computing

OpenCL 1.0 to 2.2 : a quick survey

Transcription:

Update on Khronos Open Standard APIs for Vision Processing Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem Copyright Khronos Group 2015 - Page 1

Copyright Khronos Group 2015 - Page 2 Khronos Connects Software to Silicon Open Consortium creating ROYALTY-FREE, OPEN STANDARD APIs for hardware acceleration Defining the roadmap for low-level silicon interfaces needed on every platform Graphics, compute and vision processing Rigorous specifications AND conformance tests for cross-vendor portability Acceleration APIs BY the Industry FOR the Industry Well over a BILLION people use Khronos APIs Every Day

Copyright Khronos Group 2015 - Page 3 Khronos Standards for Vision Processing Low-power, portable vision processing GPU Graphics and GPU Compute Image: ScreenMedia Heterogeneous Parallel Processing for Vision and Neural Net acceleration

OpenGL ES Roadmap Fixed function Pipeline Programmable Vertex and fragment shaders 32-bit integers and floats NPOT, 3D/depth textures Texture arrays Multiple Render Targets Compute Shaders Tessellation and geometry shaders ASTC Texture Compression Floating point render targets Debug and robustness for security Epic s Rivalry demo using full Unreal Engine 4 https://www.youtube.com/watch?v=jrr-g95gdam 2003 1.0 Driver Update 2004 1.1 Silicon Update 2007 2.0 Silicon Update 2012 3.0 Driver Update Android L 2014 3.1 Silicon Update AEP (Android Extension Pack) 2015 3.2 OpenGL ES 2.0 OpenGL ES 3.x The most widely deployed 3D graphics API in history Industry will ship >1.7 billion OpenGL ES-enabled devices in 2015 http://hwstats.unity3d.com/mobile/gpu.html Copyright Khronos Group 2015 - Page 4

OpenGL ES Fragment Shaders Fragment Shaders in OpenGL 2.0 were the original GPGPU technique (2004) - Fragment shaders executed as part of graphics pipeline - Need to configure inputs/outputs as textures and images Mobile fragment shaders arrived in OpenGL ES 2.0 (2007) - Now pervasively available on almost ANY mobile device or OS Easy integration of compute shaders into graphics apps no API interop needed - Program kernels (shaders) in GLSL not C - Good for small kernels NOT complete apps - Limited to acceleration on a single GPU OpenGL 4.2 Pipeline Governance Acceleration Devices Scope Explicit Memory/Execution Host Bindings Kernel Language OpenGL ES Fragment Shaders Khronos GPU Graphics+Compute No Copyright Khronos Group 2015 - Page 5 C GLSL Availability OpenGL ES 2.0+ Precision NO IEEE 754 (highp) mediump / lowp

OpenGL ES Compute Shaders New class of shader introduced in OpenGL 4.4 (2012) and OpenGL ES 3.1 (2014) - Separated from graphics pipe can use any buffer, image or texture Much more flexibility on how compute shader is executed and uses memory - But still use GLSL to write kernels and limited to execution on GPU only OpenGL ES 3.1 is less pervasive than fragment shaders - But mandated in Android Lollipop and Marshmallow so growing rapidly Governance Acceleration Devices Scope Explicit Memory/Execution Host Bindings Kernel Language OpenGL ES Compute Shaders Khronos GPU Graphics+Compute Yes C GLSL Availability OpenGL ES 3.1+ OpenGL 4.3 Pipeline Precision IEEE 754 Subset (highp) mediump / lowp Copyright Khronos Group 2015 - Page 6

OpenCL Heterogeneous parallel programming of diverse compute resources - Targeting supercomputers -> mobile devices -> embedded systems One code tree can be executed on CPUs, GPUs, DSPs, FPGA and hardware - Distribute work across all available processors in a system Can represent function of hardware Custom Devices as built-in kernels - Control hardware from OpenCL run-time: e.g. video encode/decode, Camera ISP Robust framework for coding complete applications - One source with both CPU and accelerated paths OpenCL Governance Acceleration Devices Scope Explicit Memory/Execution Host Bindings Kernel Language Availability Precision Khronos Heterogeneous Compute Yes C/C++ C/C++/SPIR-V Any OS Full IEEE 754 IEEE 754 Subset IEEE 754 Relaxed Copyright Khronos Group 2015 - Page 7

OpenCL Portable Heterogeneous Computing OpenCL = Two APIs and Two Kernel languages - C Platform Layer API to query, select and initialize compute devices - OpenCL C and (soon) OpenCL C++ kernel languages to write parallel code - C Runtime API to build and execute kernels across multiple devices One code tree can be executed on CPUs, GPUs, DSPs, FPGA and hardware - Dynamically balance work across available processors OpenCL Kernel OpenCL Code Kernel OpenCL Code Kernel OpenCL Code Kernel Code Kernel code compiled for devices GPU DSP FPGA HW CPU CPU Runtime API loads and executes kernels across devices CPU Host Devices Copyright Khronos Group 2015 - Page 8

OpenCL Implementations 1.0 May09 1.1 Jul11 1.2 Jun12 1.0 Aug09 1.1 Aug10 1.2 May12 2.0 Dec14 1.0 May10 1.1 Feb11 1.1 Mar11 1.2 Dec12 2.0 Jul14 Desktop 1.0 May09 1.1 Jun10 1.2 May15 1.1 Aug12 1.0 Feb11 1.1 Nov12 1.2 Sep13 1.2 Apr14 Mobile 1.1 Apr12 1.2 Dec14 1.2 Sep14 1.0 Jan10 1.1 May13 Embedded 1.2 May15 1.0 Jul13 FPGA 1.0 Dec14 1.2 Aug15 Vendor timelines are first implementation of each spec generation Dec08 OpenCL 1.0 Specification Jun10 OpenCL 1.1 Specification Nov11 OpenCL 1.2 Specification Nov13 OpenCL 2.0 Specification Mar15 OpenCL 2.1 Specification Copyright Khronos Group 2015 - Page 9

Copyright Khronos Group 2015 - Page 10 Embedded Needs Driving OpenCL Roadmap OpenCL roadmap discussions focused on mobile and embedded markets - Very different needs and constraints to HPC/desktop Different Bottlenecks to HPC Mobile GPU have less processing throughput than desktop GPU often busy with rendering hi-res screen Mobile memory bandwidth is often perf bottleneck Always-on vision / Neural Nets are key use cases Must run at very low power levels Thermal conditions often limit performance Vision Applications Must Not Drop Frames Real-time / guaranteed QOS App performance portability is much more critical More diverse architectures in mobile than HPC 1000s of different devices Many diverse hardware processing blocks DSP, ISP, dedicated hardware Dynamic load-balancing Instrumentation/control to route work to different compute resources depending on system loading Optimize Energy Efficiency Reduce precision even integer-only profiles? Autonomous frame processing - no host involvement? Extended Execution Model Pre-emption, yielding Higher-level portability frameworks and engines Built over powerful low-level APIs Expand support for Custom Devices Extended pipes and graphs in OpenCL run-time?

Copyright Khronos Group 2015 - Page 11 OpenCL used to Accelerate OpenCV Extensive and widely used open source vision library 1,000s of functions - Released under a free-use BSD license - Written in optimized C/C++ C++, C, Python and Java interfaces - Windows, Linux, Mac OS - ios and Android Increasingly taking advantage of heterogeneous processing using OpenCL - OpenCV 3.0 Transparent API - single API entry for each function/algorithm - Dynamically loads OpenCL runtime if available; otherwise falls back to CPU code - Runtime Dispatching - no recompilation! CPU Thread ocl::queue OpenCV Application ocl::device CPU Thread ocl::queue ocl::context CPU Thread ocl::queue ocl::device One queue and one OpenCL device per CPU thread Different CPU threads can share a device - but use different queues OpenCL kernels are executed asynchronously

Copyright Khronos Group 2015 - Page 12 OpenCL as Parallel Language Backend JavaScript binding for initiation of OpenCL C kernels Language for image processing and computational photography MulticoreWare open source project on Bitbucket Single Source C++ Programming for OpenCL 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 Approaching 200 languages, frameworks and projects using OpenCL as a compiler target to access vendor optimized, heterogeneous compute runtimes This trend will be significantly accelerated by the availability of SPIR-V which is specifically designed to be a compiler target

Copyright Khronos Group 2015 - Page 13 OpenCL 2.1 Released November 2015 Support for the SPIR-V 1.0 intermediate language in core - E.g. SPIR-V used to ingest from diverse language front-ends - OpenCL C ingestion still supported to preserve kernel code investment OpenCL API updates - E.g. subgroups and subgroup queries in core Runs on any OpenCL 2.0-capable hardware - Only driver update required 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 Device partitioning Separate compilation and linking Enhanced image support Built-in kernels / custom devices Enhanced DX and OpenGL Interop Shared Virtual Memory On-device dispatch Generic Address Space Enhanced Image Support C11 Atomics Pipes Android ICD SPIR-V in Core Subgroups into core Subgroup query operations clclonekernel Low-latency device timer queries Dec08 OpenCL 1.0 Specification Jun10 OpenCL 1.1 Specification Nov11 OpenCL 1.2 Specification 18 months 18 months 24 months Nov13 OpenCL 2.0 Specification 24 months Nov15 OpenCL 2.1 Specification

Copyright Khronos Group 2015 - Page 14 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 - https://www.khronos.org/registry/spir-v/papers/whitepaper.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 form Multiple Developer Advantages Same front-end compiler for multiple platforms Reduces runtime kernel compilation time Don t have to ship shader/kernel source code Drivers are simpler and more reliable Tools for analysis and optimization Diverse Languages and Frameworks Hardware runtimes on multiple architectures Standard Portable Intermediate Representation

Copyright Khronos Group 2015 - Page 15 Driving the SPIR-V Open Source Ecosystem Khronos has open sourced these tools and translators Khronos plans to open source these tools soon OpenCL C OpenCL C++ GLSL Third party kernel and shader Languages SPIR-V Tools SPIR-V Validator SPIR-V (Dis)Assembler LLVM LLVM to SPIR-V Bi-directional Translator Other Intermediate Forms SPIR-V 32-bit Word Stream Extensible and easily parsed Retains data object and control flow information for effective code generation and translation IHV Driver Runtimes

Vulkan Portable, Nexgen GPU Access Ground-up design - open standard for high-efficiency GPU graphics and compute - Simpler drivers for low-overhead efficiency and cross vendor consistency Unified API for mobile, desktop, console and embedded platforms Multi-threading friendly create graphics, compute and DMA command buffers - General model - could be extended to heterogeneous processing Vulkan 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 Governance Acceleration Devices Scope Explicit Memory/Execution Host Bindings Kernel Language Availability Khronos Heterogeneous Graphics+Compute Yes C/C++ SPIR-V Any OS GPU GPU Precision Full IEEE 754 IEEE 754 Subset Copyright Khronos Group 2015 - Page 16

Next Generation GPU APIs Only Windows 10 Only Apple Cross Platform Any GPU with OpenGL ES 3.1/OpenGL 4.X and up Any OS Vulkan Target Availability Vulkan Committed Platform Adoption Copyright Khronos Group 2015 - Page 17

Driver Copyright Khronos Group 2015 - Page 18 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 Driver Simpler drivers for low-overhead efficiency and cross vendor consistency 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 19 No Compromise Potential Performance Gain Retains OpenGL Binding Model (but missing functionality such as Tessellation and Geometry Shaders) Amount of work to port from traditional OpenGL and OpenGL ES

Copyright Khronos Group 2015 - Page 20 The Power of a Three Layer Ecosystem Applications can use Vulkan directly for maximum flexibility and control Application uses utility libraries to speed development Utility libraries and layers Application Games Engines fully optimized over Vulkan The industry s leading games and engine vendors are participating in the Vulkan working group Developers can choose at which level to use the Vulkan Ecosystem Rich Area for Innovation Many utilities and layers will be in open source Layers to ease transition from OpenGL Domain specific flexibility A widely pervasive, powerful, flexible foundation layer enables diverse middleware tools and libraries Likely to include vision libraries!

Copyright Khronos Group 2015 - Page 21 Vulkan Status Rapid progress since project start in 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 - Driver upgrades will enable Vulkan on lots of current hardware Working Group Participants

Compute API Summary RS Fragment Shaders Compute Shaders Governance Khronos Khronos Google NVIDIA Khronos Khronos Apple Khronos Acceleration Devices GPU GPU CPU + GPU GPU Heterogeneous Heterogeneous GPU Heterogeneous Scope Graphics+Compute Graphics+Compute Compute Compute Compute Compute Graphics+Compute Graphics+Compute Explicit Memory/Execution No Yes No Yes Yes Yes Yes Yes Host Bindings C C C/C++/Java C/C++/Fortran C/C++ C++ Objective-C/Swift C/C++ Kernel Language GLSL GLSL C Single Source C/C++/SPIR-V Single Source C++ SPIR-V Availability OpenGL ES 2.0+ OpenGL ES 3.1+ Android NVIDIA GPU Any OS Any OS ios and MacOS Any OS Precision NO IEEE 754 (highp) mediump / lowp IEEE 754 Subset (highp) mediump / lowp Full IEEE 754 IEEE 754 Subset IEEE 754 Imprecise Full IEEE 754 IEEE 754 Subset Full IEEE 754 IEEE 754 Subset IEEE 754 Relaxed Full IEEE 754 IEEE 754 Subset IEEE 754 Relaxed IEEE 754 Subset Full IEEE 754 IEEE 754 Subset Pervasive Becoming Pervasive especially in mobile Easy to use offload if don t need explicit control Mature toolchain for GPU Compute Portable, lowlevel access to any heterogeneous compute resource Now to consider an actual vision framework Low-barrier to entry, high-level C++ layer over OpenCL Newgen API with integrated graphics and compute Open, cross platform newgen API with graphics and compute -> Will adopt heterogeneous compute capabilities in the future? Copyright Khronos Group 2015 - Page 22

Power Efficiency OpenVX Low Power Vision Acceleration Higher level abstraction API - Targeted at real-time mobile and embedded platforms Performance portability across diverse architectures - Multi-core CPUs, GPUs, DSPs and DSP arrays ISPs, Dedicated hardware Extends portable vision acceleration to very low power domains - Doesn t require high-power CPU/GPU Complex - Lower precision requirements than OpenCL - Low-power host can setup and manage frame-rate graph X100 X10 X1 Dedicated Hardware Vision DSPs Vision Processing Efficiency GPU Compute Multi-core CPU Computation Flexibility Vision Engine Accelerator Middleware Accelerator Application Accelerator Copyright Khronos Group 2015 - Page 23

Copyright Khronos Group 2015 - Page 24 OpenVX Graphs OpenVX developers express a graph of image operations ( Nodes ) - Nodes can be on any hardware or processor coded in any language - E.g. on GPU nodes may implemented in OpenCL Minimizes host interaction during frame-rate graph execution - Host processor can setup graph which can then execute almost autonomously Camera Input OpenVX Nodes Pyr t Rendering Output RGB Frame Color Conversion YUV Frame Channel Extract Gray Frame Image Pyramid Optical Flow Array of Keypoints Harris Track OpenVX Graph Ftr t-1 Array of Features

Copyright Khronos Group 2015 - Page 25 OpenVX Framework Efficiency.. Graph Scheduling Memory Management Kernel Merge Data Tiling Split the graph execution across the whole system: CPU / GPU / dedicated HW Reuse pre-allocated memory for multiple intermediate data Replace a subgraph with a single faster node Execute a subgraph at tile granularity instead of image granularity Faster execution or lower power consumption Less allocation overhead, more memory for other applications Better memory locality, less kernel launch overhead Better use of data cache and local memory

Copyright Khronos Group 2015 - Page 26 Layered Vision Processing Ecosystem Lower-level compute APIs can be used to implement OpenVX nodes - Depending on the available processors - E.g. use OpenCL or OpenGL Compute Shaders Developers can then use OpenVX to easily connect those nodes into a graph - With portable performance High-level graph abstraction gives implementation flexibility - And significant optimization opportunities Application Software Application OpenVX Runtime Flexible low-level APIs / languages Processor Hardware C/C++ Programmable Vision Processors Dedicated Vision Hardware

Example Relative Performance NVIDIA early implementation experience - Geometric mean of >2200 primitives, grouped into each categories, running at different image sizes and parameter settings 10 9 Relative Performance 8.7 8 7 6 OpenCV (GPU accelerated) OpenVX (GPU accelerated) 5 4 3 2.9 2.5 2 1 1.1 1.5 0 Arithmetic Analysis Filter Geometric Overall Copyright Khronos Group 2015 - Page 27

Copyright Khronos Group 2015 - Page 28 OpenVX and OpenCV are Complementary Implementation Conformance Consistency Scope Embedded Deployment Efficiency Typical Use Case Community driven open source library Extensive OpenCV Test Suite but no formal Adopters program Available functions can vary depending on implementation / platform Very wide 1000s of imaging and vision functions Multiple camera APIs/interfaces Re-usable code Memory-based architecture Each operation reads and writes to memory Rapid experimentation and prototyping - especially on desktop Open standard API designed to be implemented by hardware vendors Implementations must pass defined conformance test suite to use trademark All core functions must be available in all conformant implementations Tight focus on core hardware accelerated functions for mobile vision but extensible Uses external/native camera API Callable library implemented and optimized by silicon vendors Graph-based execution Optimizable computation and data transfer Production development & deployment on wide range of mobile and embedded devices

Copyright Khronos Group 2015 - Page 29 OpenVX Status Finalized OpenVX 1.0 specification released October 2014 - OpenVX 1.0.1 spec maintenance update released June 2015 www.khronos.org/openvx Khronos open source sample implementation of OpenVX 1.0 released - https://www.khronos.org/registry/vx/sample/openvx_sample_20141217.tar.gz Full conformance test suite and Adopters Program available - Test suite exercises graph framework and functionality of each OpenVX 1.0 node Commercial conformant products - Intel, Imagination, NVIDIA, Synopsis, Vivante and many more coming Roadmap discussions - More nodes, node profile sets, programmable nodes (SPIR-V?), Neural Net nodes

Copyright Khronos Group 2015 - Page 30 Vision Pipeline Challenges and Opportunities Growing Camera Diversity Diverse Vision Processors Sensor Proliferation 22 Flexible sensor and camera control to GENERATE an image stream Use efficient acceleration to PROCESS the image stream Combine vision output with other sensor data on device

Safety Critical Working Group 2005 OpenGL SC 1.0 Fixed function graphics subset 2016 (planned) OpenGL SC 2.0 Programmable shader pipeline subset New Generation API for safety certifiable graphics AND compute Many future safety critical use cases involve vision and compute acceleration (e.g. neural nets) 2003 OpenGL ES 1.0 Fixed function graphics 2007 OpenGL ES 2/3 Programmable shader pipeline New Khronos Safety Critical Advisory Panel Defining guidelines for creating specifications for ISO 26262 and DO-178B/C certification Copyright Khronos Group 2015 - Page 31

Copyright Khronos Group 2015 - Page 32 Roadmap Possibilities in Discussion SPIR-V Ingestion in OpenVX and OpenGL ES for programmable node and shading language flexibility Thin and predictable graphics and compute for safety critical systems 1. C++ Shading Language 2. Single source C++ Programming from SYCL 3. OpenCL-class Heterogeneous Compute to Vulkan runtime

Copyright Khronos Group 2015 - Page 33 Summary Khronos standards are key to many emerging embedded vision markets - GPU graphics and compute, parallel computation and vision - Khronos APIs are royalty-free Any company is welcome to join Khronos to influence the direction of these standards and propose new initiatives - $15K annual membership fee for access to all Khronos API working groups - Well-defined IP framework protects your IP and conformant implementations More Information - www.khronos.org - ntrevett@nvidia.com - @neilt3d