open standards for parallel processing and data … · open standards for parallel processing and...
TRANSCRIPT
© Copyright Khronos Group 2012 | Page 1
Open Standards for Parallel Processing and Data Visualization
Neil Trevett President, The Khronos Group
Vice President Mobile Content, NVIDIA
© Copyright Khronos Group 2012 | Page 2
Topics • Overview of Khronos
- Creating open standards for hardware acceleration
• OpenCL
- Portable heterogeneous parallel programming
• OpenGL
- Advanced 3D visualization
• WebGL
- Portable 3D visualization in HTML5
© Copyright Khronos Group 2012 | Page 3
APIs BY the Industry FOR the Industry • Khronos APIs define processor acceleration capabilities
- Graphics, video, audio, compute, vision and sensor processing
• Khronos standards have strong industry momentum
- Shipping on billions of devices and multiple operating systems
• Khronos is OPEN for any company to join and participate
- Standards are truly open – one company, one vote
• Khronos APIs define core device acceleration functionality
- Low-level “Foundation” functionality needed on every platform
• They are FREE
- No royalties
Software
Silicon
© Copyright Khronos Group, 2012 - Page 4
Over 100 members – any company worldwide is welcome to join
Apple
Board of Promoters
© Copyright Khronos Group 2012 | Page 5
Khronos in Korea • KITE Korea
- Network of educators for educational collaboration
- Develops courseware, books, translations
• Korea Center
- Physical Center and KITE activities in Korea
- Kyungpook National University “3D Fusion Technology Center”
- Facilities and equipment for training and educational events
• Khronos Korea Chapters
- Anyone can participate without charge, with local chapter leaders
- Social exchange via e-Newsletters, Networking, Meetups
- Khronos sponsorship and logistical support
- Local assistance by Huone
- Looking for local chapter volunteers!
© Copyright Khronos Group 2012 | Page 6
Khronos Standards
2000 2003 2004 2005 2006 2008 2009 2011
Embedded and Mobile 3D
Advanced Audio
Parallel Computing
Camera, Images and Streaming Media
3D Digital Asset Exchange format
Vector 2D
Cross platform desktop 3D
Plugin-free 3D Web Content
Web Compute
Hardware accelerated vision functions
OpenVL
Unified Sensor and Input Processing
15 Active Standards
© Copyright Khronos Group 2012 | Page 7
Processor Parallelism
CPUs Multiple cores driving performance increases
GPUs Increasingly general purpose data-parallel
computing
Graphics APIs and Shading
Languages
Multi-processor
programming – e.g. OpenMP
Emerging Intersection
Heterogeneous Computing
OpenCL is a programming framework for heterogeneous compute resources
© Copyright Khronos Group 2012 | Page 8
OpenCL – Heterogeneous Computing • Framework for programming diverse
parallel computing resources in a system
• Platform Layer API
- Query, select and initialize compute devices
• Kernel Language Specification
- Subset of ISO C99 with language extensions
• Runtime API
- Execute compute kernels multiple devices
- Gather results
© Copyright Khronos Group 2012 | Page 9
OpenCL Working Group Members
• Diverse industry participation – many industry experts
- Processor vendors, system OEMs, middleware vendors, application developers
- Academia and research labs, FPGA vendors
• NVIDIA is chair, Apple is specification editor
Apple
© Copyright Khronos Group 2012 | Page 10
OpenCL Milestones • Six months from proposal to released OpenCL 1.0 specification
- Due to a strong initial proposal and a shared commercial incentive
• Multiple conformant implementations shipping on desktop
- For CPUs and GPUs on multiple OS
• 18 month cadence between releases
- Backwards compatibility protects software investment
OpenCL 1.0 released – conformance tests
released Dec08
Dec08
Jun10
OpenCL 1.1 Specification and
conformance tests released
Nov11
OpenCL 1.2 Specification and
conformance tests released
2012
OpenCL on mobile platforms
begin to ship
© Copyright Khronos Group 2012 | Page 11
OpenCL Desktop Implementations • http://developer.amd.com/zones/OpenCLZone/
• http://software.intel.com/en-us/articles/opencl-sdk/
• http://developer.nvidia.com/opencl
© Copyright Khronos Group 2012 | Page 12
OpenCL Roadmap
Long-term Core Roadmap Exploring enhanced memory and execution model flexibility to catalyze and expose emerging hardware capabilities
OpenCL-SPIR (Standard Parallel Intermediate Representation)
Exploring low-level Intermediate Representation for code obfuscation/security and to provide target back-end for alternative high-level languages
OpenCL-HLM (High Level Model)
Exploring high-level programming model, unifying host and device execution environments through language syntax for increased usability and broader optimization opportunities
© Copyright Khronos Group 2012 | Page 13
High Level GPU Compute Initiatives
C++ Accelerated Massive Parallelism (C++ AMP)
RenderScript
GPU Compute Acceleration
Offload to data-parallel hardware through C++ syntax/compiler extensions
C/C++ Compiler Directives to steer offload
of code sections to accelerators
HLM
CUDA
C/C++ compilers and libraries for CPU/GPU programming
C-level 3D rendering and compute APIs for offload from Dalvik applications with JIT compilation for device portability
Aparapi
Express data parallel workloads in Java and convert byte code into OpenCL for GPU offload
© Copyright Khronos Group 2012 | Page 14
OpenGL for Each Hardware Generation
Geometry Shaders
1.X
Fixed Function
2.X
Vertex and Fragment Shaders
3.X
Tessellation and Compute
4.X
‘Surface realism’
‘Shape realism’
Advanced 3D functionality available on PC, MAC and Linux systems
© Copyright Khronos Group 2012 | Page 15
2004 2006 2008 2009 2010 2005 2007 2011
Accelerating OpenGL Innovation
DirectX 10.1
OpenGL 2.1 OpenGL 3.0
OpenGL 3.1
DirectX 9.0c DirectX 10.0 DirectX 11
OpenGL 3.2
OpenGL 3.3/4.0
OpenGL 4.1
Bringing state-of-the-art functionality to cross-platform graphics
© Copyright Khronos Group, 2011 - Page 16
Graphics Compute Interop
OpenGL and OpenCL have direct interoperability - OpenCL memory objects can be created from OpenGL
Textures, Buffer Objects and Renderbuffers - Can send events between the two APIs so memory object
access is synchronized
Enables computations to be visualized and computation to enhance graphics rendering
© Copyright Khronos Group 2012 | Page 17
HTML5 – Cross OS App Platform • Increasing diversity of devices
creates a demand for a true cross OS
programming platform
• BUT need more than “more HTML”
Rich Experiential Processing Multi-core CPUs
Rich 2D and 3D GPU GPU Computing
Multiple HD cameras Image and vision processing
Video encode/decode Audio encode/decode
Inertial and positional sensors
How can the Browser rapidly assimilate such diverse functionality?
Traditional Web-content
© Copyright Khronos Group 2012 | Page 18
Content JavaScript, HTML, CSS, ...
WebGL Implementation Anatomy
JavaScript Middleware
WebGL HTML5
JavaScript CSS
Browser provides WebGL functionality alongside other HTML5 specs
- no plug-in required
OS Provided Drivers. WebGL on Windows can use Google Angle to create
conformant OpenGL ES 2.0 over DX9
OpenGL ES 2.0 OpenGL
DX9/Angle
Content downloaded from the Web. Middleware can make WebGL accessible to
non-expert 3D programmers
© Copyright Khronos Group 2012 | Page 19
Universal Remote WebGL Visualization
Any inexpensive workstation, PC or mobile device running an HTML5 browser with WebGL can display 3D visualizations Large or sensitive data sets can remain on the server – just results transmitted
© Copyright Khronos Group 2012 | Page 21
WebGL Deployment • WebGL 1.0 Released at GDC March 2011
- Mozilla, Apple, Google and Opera working closely with GPU vendors
- WebGL can be enabled in Internet Explorer with Chrome Frame
https://developers.google.com/chrome/chrome-frame/
• Mobile WebGL beginning to ship – Firefox, Opera
- Pervasive mobile WebGL expected during 2012
http://caniuse.com/#search=webgl
WebGL is not enabled by default in desktop Safari. On iOS 5 WebGL is available to iAds
© Copyright Khronos Group 2012 | Page 22
Need for 3D Transmission Standard • Need efficient codecs for 3D assets to grow 3D market opportunities
- Approaching chaos in 3D data encodings used in WebGL browsers and apps
- Binary encoding – can be used together with JSON and RESTful APIs
• Possible key requirements for common 3D binary encoding
- Full-scene - Geometry, textures, materials, animations, physics etc.
- Compression of textures and geometry with streaming support with LOD flexibility
• MPEG doing work on this - can achieve 1:40 – 1:120 compression
- Progressive Streaming using 3D Mesh Coding (3DMC)
- Bones Based Animation (BBA)
• Khronos and MPEG (ISO SC29) exploring collaboration
Audio Video Images 3D
MP3 H.264 PNG/JPEG ? ?
© Copyright Khronos Group 2012 | Page 23
Tools for Compute / Visualization Emerging • OpenCL Studio
- Integrates OpenCL and OpenGL into a single development environment for high
performance computing and visualization http://www.opencldev.com/home
• Voreen 4.0
- Runtime editing of OpenCL kernels and GLSL shaders for volume and image
processing http://voreen.uni-muenster.de/
© Copyright Khronos Group 2012 | Page 24
In Summary • Khronos is developing and evolving royalty-free standard APIs for parallel
computation and 3D visualization
• OpenCL and OpenGL can tightly interoperate to enable advanced visual
computing applications
• WebGL is enabling portable 3D visual visualization capabilities to any
device with an HTML5 browser
• Khronos is driving open standards for hardware acceleration
Participate, change the industry AND get the inside edge for your products!
Connecting Software to Silicon