Khronos Overview

Total Page:16

File Type:pdf, Size:1020Kb

Khronos Overview Mobile APIs BOF SIGGRAPH 2010 © Copyright Khronos Group, 2009 - Page 1 Agenda - …nothing works without them - Jon Peddie, JPR The Khronos Handheld API Ecosystem - Neil Trevett, NVIDIA EGL - Working Group report – Jon Leech, Khronos OpenGL ES - Working Group report – Tom Olson, ARM - KTX: A light-weight file format for OpenGL and OpenGL ES textures – Mark Callow, HI Corp - Real-time, on-device OpenGL ES profiling using gDebugger – Yaki Tabaka, Graphic Remedy - OpenGL ES 2.0: 3D Graphics for In-Vehicle Infotainment – Petri Talala, Symbio OpenVG - OpenVG Implementations and Applications – Hwanyong Lee, HUONE © Copyright Khronos Group, 2009 - Page 2 - nothing works without them 3 JonPeddieResearch Jon Peddie Research Jon Peddie Research Peddie Jon Agenda - a bunch of overviews Status and Momentum of current APIs • (It’s been a long, hard trail…) Future developments and trends • (You may be surprised, or maybe not) Trends in the mobile graphics markets • (Some interesting, others FYI) JonPeddieResearch API Devloper OS Release Date API Developer OS Release Date Plot 10 Tektronix Tek 4010 & HG 1971 CORE AACM littleVarious 30 year1972 History of APIs GKS ACM Various 1977 PHIGS ACM Various 1979 IRIS--GL SGI Various 1981 ADI Autodesk Various 1988 8514 IBM MS DOS 1988 PEX Various 1989 S3G S3 MS DOS 1991 Fusix PX/GL Du Pont Various 1991 GL Compaq (ACE) MESA Various 1991 Glide 3Dfx MS DOS & others 1995 Open GL SGI Various 1992 QuickDraw 3D Apple Apple 1995 Direct3D Microsoft MS DOS 1995 PIKS ISO/IEC Various 1995 DirectX 1.0 Microsoft Windows 3.1 Sept. 1995 DirectX 2.0 Microsoft 95 and NT 4.0 Jun. 1996 DirectX 3.0 Microsoft NT 4.0 SP3 Sept. 1996 Fahrenheit Project DirectX 4.0 Microsoft n/a Never released DirectX 5.0 Microsoft 98 Jul. 1997 GDI Microsoft 98 Jul. 1998 DirectX 6.0 Microsoft 98 SE and ME Aug. 1998 GLX SGI Various 1999 DirectX 7.0 Microsoft 2000 Sept. 1999 DirectX 8.0 Microsoft 2000 Nov. 2000 DirectX 8.1 Microsoft XP Nov. 2001 DirectX 9.0 Microsoft XP Dec. 2002 DirectX 9.0a Microsoft XP Mar. 2003 DirectX 9.0b Microsoft XP Aug. 2003 WGF (LDDM) Microsoft XP 2004 DirectX 9.0c Microsoft XP Aug. 2004 DirectX 10 Microsoft Vista Nov. 2006 PS3-RSX Sony/Nvidia PS3 2006 DirectX 10.1 Microsoft Vista SP1 Feb. 2008 JonPeddieResearch DirectX 11 Microsoft Windows 7 Oct. 2009 Future Trends Application Operating System API and Graphics Driver Libraries Hardware JonPeddieResearch Jon Peddie Research The Mobile Market Overall Mobile Devices WW annual shipments (M units) 2,500 All other phones 2,000 Mobile (non PC) devices 1,062 1,500 1,107 1,129 1,141 1,114 1,091 1,026 1,000 500 598 691 784 895 1,031 1,197 1,335 0 2009 2010 2011 2012 2013 2014 2015 BILLIONS of thingies get suppliers excited… JonPeddieResearch The Suppliers ( There’s a lot… ) Main Suppliers Others . Broadcom * . Anyka . Freescale * . MediaTek . Intel ** . Mtekvision * . Marvell * . Sigma Design . NEC * . NetLogic * . Nvidia ** . Wondermedia/VIA * . Qualcomm ** . Renesas * IP Providers . Samsung ** . ARC/Virage/Synopsys . ST-Ericsson * . ARM ** . Telechips . DMP * . TI ** . Imagination Technologies ** . Zoran . MIPS * KHRONOS Member . Takumi * . Vivante * JonPeddieResearch The Sub or Adjacent Markets TOTAL DEVICE SHIPMENTS (M units) Tablets & Smartbooks Smartphones 1,400 DAB Personal Media Devices (PMP) Navigation (PND) Mobile Game Console - Gen 2 1,200 MIDs & Gadgets e-Books 1,000 Digital Still Cameras (DSC) Digital Picture Frames (DPF) 800 600 400 200 0 2009 2010 2011 2012 2013 2014 2015 JonPeddieResearch The Sub or Adjacent Markets Consumer future purchase plans (PriceGrabber.com) Tablet PC Netbook Desktop MP3 music player Smartphone Laptop 0% 5% 10% 15% 20% 25% 30% 35% JonPeddieResearch Thank you Chasing pixels – finding gems [email protected] JonPeddieResearch OpenGL ES Update Tom Olson, ARM Chair, OpenGL ES Working Group © Copyright Khronos Group, 2009 - Page 14 What is OpenGL ES? • OpenGL for mobile devices - Gets rid of redundant / legacy features - Extensions to make it mobile-friendly - All the functionality of the desktop API • Versions - ES 1.0 / 1.1: fixed function - ES 2.0: shader-based via GLSL ES • A huge success! - The dominant native 3D API for mobile devices - Widely used in other markets: STB, printers, NAV… - Now shipping > 100M units a year © Copyright Khronos Group, 2009 - Page 15 OpenGL ES 2.0 is here! • Available in all the latest high-end handsets • SDKs, books are now available • Starting point for other APIs, e.g. WebGL …and the fun is just starting © Copyright Khronos Group, 2009 - Page 16 Working Group Activities • Next Generation OpenGL ES - Working Group’s main focus since mid-2009 - Will be released when market needs it - Will not disrupt the growing OpenGL ES 2.0 ecosystem • ARB / ES Convergence Group - Joint subcommittee of OpenGL and OpenGL ES working groups - Goal is to align roadmaps and avoid unnecessary divergence • Ecosystem Support - OpenGL ES 2.0 Reference Card - KTX file format © Copyright Khronos Group, 2009 - Page 17 KTX Mark Callow, HI Corporation July 2010 © Copyright Khronos Group, 2010 - Page 18 The Khronos Group Announces • KTX – Khronos TeXture http://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/ © Copyright Khronos Group, 2010 - Page 19 KTX • A new file format for storing texture images • Oh no! Not Another image file format? Groan...! • NO • It is a lightweight format specifically for storing OpenGL® textures © Copyright Khronos Group, 2010 - Page 20 KTX • Designed around how textures are loaded in OpenGL. • KTX files contain all the parameters needed for texture loading. • The loader is very simple. © Copyright Khronos Group, 2010 - Page 21 Compression • Image data can be stored in any of the compressed formats supported by OpenGL family APIs and extensions - e.g. ETC1, ATITC, S3TC, etc. • Or can be stored uncompressed. • A single .ktx file can contain any type of GL texture from a 1D texture to an array texture with all mipmap levels. © Copyright Khronos Group, 2010 - Page 22 E.G. Mipmap Pyramid in Single KTX file } my_mipmap.ktx © Copyright Khronos Group, 2010 - Page 23 E.G. Cube Map + Mip Levels in Single KTX File } my_cubemap.ktx © Copyright Khronos Group, 2010 - Page 24 Tools • libktx - Library of functions for writing ktx files and loading textures from them - Loader decompresses ETC1 compressed textures when hardware does not support ETC1. - Easy to use. - E.g. app. can change from using a base level 2D texture to providing a full mipmap pyramid simply by changing the file it loads. • toktx - Create KTX files from a list of .pam, .pgm or .ppm files - Does not compress images • Both are open source under BSD-like license © Copyright Khronos Group, 2010 - Page 25 • Specification, downloads, source and documentation can all be found on the KTX home page in new OpenGL ES SDK at: http://www.khronos.org/opengles/sdk/tools/KTX/ © Copyright Khronos Group, 2010 - Page 26 More Tools • etcpack - Creates KTX files for RGB textures compressed with ETC1. • Available from Ericsson’s developer site: http://devtools.ericsson.com/etc © Copyright Khronos Group, 2010 - Page 27 A Note About Orientation • etcpack and toktx by default map the first pixel in the input file to s0, t0. • First pixel in a netpbm file is logical top-left of the image - so image will be inverted if displayed with GL defaults • This behavior was chosen to match existing compression tools • etcpack and toktx provide options to change the mapping • toktx inserts a KTXorientation key-value pair into the file that indicates the logical orientation of the image allowing smart applications to display the image correctly. © Copyright Khronos Group, 2010 - Page 28 Future • We expect other compression tools such as The Compressionator to add an option to output the KTX format. • Applications will then be able to use a single file format across all vendors proprietary texture compression schemes. © Copyright Khronos Group, 2010 - Page 29 Debugging and Profiling OpenGL ES based applications using gDEBugger ES Yaki Tebeka, CTO Graphic Remedy © 2004 – 2009 Graphic Remedy. All Rights Reserved Smart phones and devices era • Today’s smart phones and devices are equipped with GPUs, offering high performance graphics and low power consumption • Implementations are available from PowerVR, ARM, Qualcomm, NVIDIA, … • The OpenGL ES API is widely used over these platforms © 2004 – 2009 Graphic Remedy. All Rights Reserved Debugging and profiling 3D apps • Debugging and profiling 3D applications are hard and time consuming tasks • Companies find it extremely hard to deliver robust and bug-free 3D applications • It is almost impossible to optimize a 3D application to fully utilize the graphic system performance © 2004 – 2009 Graphic Remedy. All Rights Reserved • OpenGL, OpenGL ES and Open CL Debugger, Profiler and Memory Analyzer • Exposes the internal graphic system information needed to find bugs, optimize render performance and memory usage © 2004 – 2009 Graphic Remedy. All Rights Reserved Debugging and Profiling Demo © 2004 – 2009 Graphic Remedy. All Rights Reserved Automatic errors detection mechanism gDEBugger can automatically break on: • OpenGL ES errors • gDEBugger detected errors: a unique and more comprehensive errors detection mechanism • Graphic memory leaks • Redundant functions • And more © 2004 – 2009 Graphic Remedy. All Rights Reserved Call stack and Source code views • View the call stack and source code that led to the error / OpenGL ES function call © 2004 – 2009 Graphic Remedy. All Rights Reserved Statistical and Redundant calls viewer • Displays the number of times each OpenGL ES function was called • Display redundant state changes • Break on redundant state change © 2004 – 2009 Graphic Remedy. All Rights Reserved Performance graph Displays performance counters graphs from different sources • Operating Systems: Windows, Mac OS X and Linux • GPU and driver: SGX Graphic driver, etc • gDEBugger OpenGL ES Server © 2004 – 2009 Graphic Remedy. All Rights Reserved Performance Analysis Toolbar • Turn off the graphic pipeline stages one after the other • If the performance improves when turning off a certain stage, you have found a graphic pipeline bottleneck © 2004 – 2009 Graphic Remedy.
Recommended publications
  • GLSL 4.50 Spec
    The OpenGL® Shading Language Language Version: 4.50 Document Revision: 7 09-May-2017 Editor: John Kessenich, Google Version 1.1 Authors: John Kessenich, Dave Baldwin, Randi Rost Copyright (c) 2008-2017 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to the Khronos Group, Inc. It or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast, or otherwise exploited in any manner without the express prior written permission of Khronos Group. You may use this specification for implementing the functionality therein, without altering or removing any trademark, copyright or other notice from the specification, but the receipt or possession of this specification does not convey any rights to reproduce, disclose, or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part. Khronos Group grants express permission to any current Promoter, Contributor or Adopter member of Khronos to copy and redistribute UNMODIFIED versions of this specification in any fashion, provided that NO CHARGE is made for the specification and the latest available update of the specification for any version of the API is used whenever possible. Such distributed specification may be reformatted AS LONG AS the contents of the specification are not changed in any way. The specification may be incorporated into a product that is sold as long as such product includes significant independent work developed by the seller. A link to the current version of this specification on the Khronos Group website should be included whenever possible with specification distributions.
    [Show full text]
  • Mac OS 8 Update
    K Service Source Mac OS 8 Update Known problems, Internet Access, and Installation Mac OS 8 Update Document Contents - 1 Document Contents • Introduction • About Mac OS 8 • About Internet Access What To Do First Additional Software Auto-Dial and Auto-Disconnect Settings TCP/IP Connection Options and Internet Access Length of Configuration Names Modem Scripts & Password Length Proxies and Other Internet Config Settings Web Browser Issues Troubleshooting • About Mac OS Runtime for Java Version 1.0.2 • About Mac OS Personal Web Sharing • Installing Mac OS 8 • Upgrading Workgroup Server 9650 & 7350 Software Mac OS 8 Update Introduction - 2 Introduction Mac OS 8 is the most significant update to the Macintosh operating system since 1984. The updated system gives users PowerPC-native multitasking, an efficient desktop with new pop-up windows and spring-loaded folders, and a fully integrated suite of Internet services. This document provides information about Mac OS 8 that supplements the information in the Mac OS installation manual. For a detailed description of Mac OS 8, useful tips for using the system, troubleshooting, late-breaking news, and links for online technical support, visit the Mac OS Info Center at http://ip.apple.com/infocenter. Or browse the Mac OS 8 topic in the Apple Technical Library at http:// tilsp1.info.apple.com. Mac OS 8 Update About Mac OS 8 - 3 About Mac OS 8 Read this section for information about known problems with the Mac OS 8 update and possible solutions. Known Problems and Compatibility Issues Apple Language Kits and Mac OS 8 Apple's Language Kits require an updater for full functionality with this version of the Mac OS.
    [Show full text]
  • Implementing FPGA Design with the Opencl Standard
    Implementing FPGA Design with the OpenCL Standard WP-01173-3.0 White Paper Utilizing the Khronos Group’s OpenCL™ standard on an FPGA may offer significantly higher performance and at much lower power than is available today from hardware architectures such as CPUs, graphics processing units (GPUs), and digital signal processing (DSP) units. In addition, an FPGA-based heterogeneous system (CPU + FPGA) using the OpenCL standard has a significant time-to-market advantage compared to traditional FPGA development using lower level hardware description languages (HDLs) such as Verilog or VHDL. 1 OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos. Introduction The initial era of programmable technologies contained two different extremes of programmability. As illustrated in Figure 1, one extreme was represented by single core CPU and digital signal processing (DSP) units. These devices were programmable using software consisting of a list of instructions to be executed. These instructions were created in a manner that was conceptually sequential to the programmer, although an advanced processor could reorder instructions to extract instruction-level parallelism from these sequential programs at run time. In contrast, the other extreme of programmable technology was represented by the FPGA. These devices are programmed by creating configurable hardware circuits, which execute completely in parallel. A designer using an FPGA is essentially creating a massively- fine-grained parallel application. For many years, these extremes coexisted with each type of programmability being applied to different application domains. However, recent trends in technology scaling have favored technologies that are both programmable and parallel. Figure 1.
    [Show full text]
  • 4010, 237 8514, 226 80486, 280 82786, 227, 280 a AA. See Anti-Aliasing (AA) Abacus, 16 Accelerated Graphics Port (AGP), 219 Acce
    Index 4010, 237 AIB. See Add-in board (AIB) 8514, 226 Air traffic control system, 303 80486, 280 Akeley, Kurt, 242 82786, 227, 280 Akkadian, 16 Algebra, 26 Alias Research, 169 Alienware, 186 A Alioscopy, 389 AA. See Anti-aliasing (AA) All-In-One computer, 352 Abacus, 16 All-points addressable (APA), 221 Accelerated Graphics Port (AGP), 219 Alpha channel, 328 AccelGraphics, 166, 273 Alpha Processor, 164 Accel-KKR, 170 ALT-256, 223 ACM. See Association for Computing Altair 680b, 181 Machinery (ACM) Alto, 158 Acorn, 156 AMD, 232, 257, 277, 410, 411 ACRTC. See Advanced CRT Controller AMD 2901 bit-slice, 318 (ACRTC) American national Standards Institute (ANSI), ACS, 158 239 Action Graphics, 164, 273 Anaglyph, 376 Acumos, 253 Anaglyph glasses, 385 A.D., 15 Analog computer, 140 Adage, 315 Anamorphic distortion, 377 Adage AGT-30, 317 Anatomic and Symbolic Mapper Engine Adams Associates, 102 (ASME), 110 Adams, Charles W., 81, 148 Anderson, Bob, 321 Add-in board (AIB), 217, 363 AN/FSQ-7, 302 Additive color, 328 Anisotropic filtering (AF), 65 Adobe, 280 ANSI. See American national Standards Adobe RGB, 328 Institute (ANSI) Advanced CRT Controller (ACRTC), 226 Anti-aliasing (AA), 63 Advanced Remote Display Station (ARDS), ANTIC graphics co-processor, 279 322 Antikythera device, 127 Advanced Visual Systems (AVS), 164 APA. See All-points addressable (APA) AED 512, 333 Apalatequi, 42 AF. See Anisotropic filtering (AF) Aperture grille, 326 AGP. See Accelerated Graphics Port (AGP) API. See Application program interface Ahiska, Yavuz, 260 standard (API) AI.
    [Show full text]
  • Khronos Template 2015
    Ecosystem Overview Neil Trevett | Khronos President NVIDIA Vice President Developer Ecosystem [email protected] | @neilt3d © Copyright Khronos Group 2016 - Page 1 Khronos Mission Software Silicon Khronos is an Industry Consortium of over 100 companies creating royalty-free, open standard APIs to enable software to access hardware acceleration for graphics, parallel compute and vision © Copyright Khronos Group 2016 - Page 2 http://accelerateyourworld.org/ © Copyright Khronos Group 2016 - Page 3 Vision Pipeline Challenges and Opportunities Growing Camera Diversity Diverse Vision Processors Sensor Proliferation 22 Flexible sensor and camera Use efficient acceleration to Combine vision output control to GENERATE PROCESS with other sensor data an image stream the image stream on device © Copyright Khronos Group 2016 - Page 4 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 Vision Engine Middleware Application X100 Dedicated Vision Processing Hardware Efficiency Vision DSPs X10 GPU Compute Accelerator Multi-core Accelerator Power Efficiency Power X1 CPU Accelerator Computation Flexibility © Copyright Khronos Group 2016 - Page 5 OpenVX Graphs
    [Show full text]
  • Rage 128 Ss Ä
    RAGE ™128 Next Generation 3D and Multimedia Accelerator RAGE 128 GL for OpenGL Workstations and high-end entertainment PCs overview RAGE 128 VR ideal for stunning 2D & 3D performance on Mainstream PCs The ATI RAGE 128 is a fully integrated, ADVANCED 3D FEATURES 128-bit graphics and multimedia accelerator RAGE 128 is optimized for both DX6 and that offers leading-edge performance in all OpenGL acceleration. It provides full First chip to support new three vectors of visual computing: 3D, 2D, support of Direct3D texture lighting and and video. second-generation texture compositing. DDR SGRAM and popular Special effects such as complete alpha STUNNING PERFORMANCE blending, vertex and table-based fog, SDRAM memories RAGE 128 couples an advanced 128-bit video textures, texture lighting, reflections, engine with ATI's new SuperScalar shadows, spotlights, bump mapping, LOD Rendering technology (SSR) to provide biasing, and texture morphing are available. Optional support for TV-out stunningly fast 2D and 3D performance. AGP configurations can use system memory ATI's unique Twin-Cache Architecture (TCA) for additional textures. Hidden surface and Video Capture, enabling incorporates texture and pixel cache to removal uses 16, 24, or 32-bit Z-buffering. increase the effective memory bandwidth for "Broadcast PC" systems extra performance. The new Single-Pass NEW DIRECTX 6.0 FEATURES Multi Texturing (SMT) capability enables The RAGE 128 is ideally matched with ( advanced 3D effects like texturing, lighting DirectX 6.0, supporting new DirectX features and shading at full performance. The chip such as multitexturing, stencil planes, bump also incorporates ATI's new Concurrent mapping, vertex buffers, and direct walk of Command Engine (CCE), which takes full Direct3D/OpenGL vertex list.
    [Show full text]
  • Khronos Native Platform Graphics Interface (EGL Version 1.4 - April 6, 2011)
    Khronos Native Platform Graphics Interface (EGL Version 1.4 - April 6, 2011) Editor: Jon Leech 2 Copyright (c) 2002-2011 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to the Khronos Group, Inc. It or any components may not be reproduced, repub- lished, distributed, transmitted, displayed, broadcast or otherwise exploited in any manner without the express prior written permission of Khronos Group. You may use this specification for implementing the functionality therein, without altering or removing any trademark, copyright or other notice from the specification, but the receipt or possession of this specification does not convey any rights to reproduce, disclose, or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part. Khronos Group grants express permission to any current Promoter, Contributor or Adopter member of Khronos to copy and redistribute UNMODIFIED versions of this specification in any fashion, provided that NO CHARGE is made for the specification and the latest available update of the specification for any version of the API is used whenever possible. Such distributed specification may be re- formatted AS LONG AS the contents of the specification are not changed in any way. The specification may be incorporated into a product that is sold as long as such product includes significant independent work developed by the seller. A link to the current version of this specification on the Khronos Group web-site should be included whenever possible with specification distributions. Khronos Group makes no, and expressly disclaims any, representations or war- ranties, express or implied, regarding this specification, including, without limita- tion, any implied warranties of merchantability or fitness for a particular purpose or non-infringement of any intellectual property.
    [Show full text]
  • The Openvx™ Specification
    The OpenVX™ Specification Version 1.0.1 Document Revision: r31169 Generated on Wed May 13 2015 08:41:43 Khronos Vision Working Group Editor: Susheel Gautam Editor: Erik Rainey Copyright ©2014 The Khronos Group Inc. i Copyright ©2014 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to the Khronos Group, Inc. It or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast or otherwise exploited in any manner without the express prior written permission of Khronos Group. You may use this specifica- tion for implementing the functionality therein, without altering or removing any trademark, copyright or other notice from the specification, but the receipt or possession of this specification does not convey any rights to reproduce, disclose, or distribute its contents, or to manufacture, use, or sell anything that it may describe, in whole or in part. Khronos Group grants express permission to any current Promoter, Contributor or Adopter member of Khronos to copy and redistribute UNMODIFIED versions of this specification in any fashion, provided that NO CHARGE is made for the specification and the latest available update of the specification for any version of the API is used whenever possible. Such distributed specification may be re-formatted AS LONG AS the contents of the specifi- cation are not changed in any way. The specification may be incorporated into a product that is sold as long as such product includes significant independent work developed by the seller. A link to the current version of this specification on the Khronos Group web-site should be included whenever possible with specification distributions.
    [Show full text]
  • SYCL – Introduction and Hands-On
    SYCL – Introduction and Hands-on Thomas Applencourt + people on next slide - [email protected] Argonne Leadership Computing Facility Argonne National Laboratory 9700 S. Cass Ave Argonne, IL 60349 Book Keeping Get the example and the presentation: 1 git clone https://github.com/alcf-perfengr/sycltrain 2 cd sycltrain/presentation/2020_07_30_ATPESC People who are here to help: • Collen Bertoni - [email protected] • Brian Homerding - [email protected] • Nevin ”:)” Liber [email protected] • Ben Odom - [email protected] • Dan Petre - [email protected]) 1/17 Table of contents 1. Introduction 2. Theory 3. Hands-on 4. Conclusion 2/17 Introduction What programming model to use to target GPU? • OpenMP (pragma based) • Cuda (proprietary) • Hip (low level) • OpenCL (low level) • Kokkos, RAJA, OCCA (high level, abstraction layer, academic projects) 3/17 What is SYCL™?1 1. Target C++ programmers (template, lambda) 1.1 No language extension 1.2 No pragmas 1.3 No attribute 2. Borrow lot of concept from battle tested OpenCL (platform, device, work-group, range) 3. Single Source (two compilations passes) 4. High level data-transfer 5. SYCL is a Specification developed by the Khronos Group (OpenCL, SPIR, Vulkan, OpenGL) 1SYCL Doesn’t mean ”Someone You Couldn’t Love”. Sadly. 4/17 SYCL Implementations 2 2Credit: Khronos groups (https://www.khronos.org/sycl/) 5/17 Goal of this presentation 1. Give you a feel of SYCL 2. Go through code examples (and make you do some homework) 3. Teach you enough so that can search for the rest if you interested 4. Question are welcomed! 3 3Please just talk, or use slack 6/17 Theory A picture is worth a thousand words4 4and this is a UML diagram so maybe more! 7/17 Memory management: SYCL innovation 1.
    [Show full text]
  • Opencl on The
    Introduction to OpenCL Cliff Woolley, NVIDIA Developer Technology Group Welcome to the OpenCL Tutorial! . OpenCL Platform Model . OpenCL Execution Model . Mapping the Execution Model onto the Platform Model . Introduction to OpenCL Programming . Additional Information and Resources OpenCL is a trademark of Apple, Inc. Design Goals of OpenCL . Use all computational resources in the system — CPUs, GPUs and other processors as peers . Efficient parallel programming model — Based on C99 — Data- and task- parallel computational model — Abstract the specifics of underlying hardware — Specify accuracy of floating-point computations . Desktop and Handheld Profiles © Copyright Khronos Group, 2010 OPENCL PLATFORM MODEL It’s a Heterogeneous World . A modern platform includes: – One or more CPUs CPU – One or more GPUs CPU – Optional accelerators (e.g., DSPs) GPU GMCH DRAM ICH GMCH = graphics memory control hub ICH = Input/output control hub © Copyright Khronos Group, 2010 OpenCL Platform Model Computational Resources … … … … … …… Host … Processing …… Element … … Compute Device Compute Unit OpenCL Platform Model Computational Resources … … … … … …… Host … Processing …… Element … … Compute Device Compute Unit OpenCL Platform Model on CUDA Compute Architecture … CUDA CPU … Streaming … Processor … … …… Host … Processing …… Element … … Compute Device Compute Unit CUDA CUDA-Enabled Streaming GPU Multiprocessor Anatomy of an OpenCL Application OpenCL Application Host Code Device Code • Written in C/C++ • Written in OpenCL C • Executes on the host • Executes on the device … … … … … …… Host … Compute …… Devices … … Host code sends commands to the Devices: … to transfer data between host memory and device memories … to execute device code Anatomy of an OpenCL Application . Serial code executes in a Host (CPU) thread . Parallel code executes in many Device (GPU) threads across multiple processing elements OpenCL Application Host = CPU Serial code Device = GPU Parallel code … Host = CPU Serial code Device = GPU Parallel code ..
    [Show full text]
  • Openxr 1.0 Reference Guide Page 1
    OpenXR 1.0 Reference Guide Page 1 OpenXR™ is a cross-platform API that enables a continuum of real-and-virtual combined environments generated by computers through human-machine interaction and is inclusive of the technologies associated with virtual reality, augmented reality, and mixed reality. It is the interface between an application and an in-process or out-of-process XR runtime that may handle frame composition, peripheral management, and more. Color-coded names as follows: function names and structure names. [n.n.n] Indicates sections and text in the OpenXR 1.0 specification. Specification and additional resources at khronos.org/openxr £ Indicates content that pertains to an extension. OpenXR API Overview A high level overview of a typical OpenXR application including the order of function calls, creation of objects, session state changes, and the rendering loop. OpenXR Action System Concepts [11.1] Create action and action spaces Set up interaction profile bindings Sync and get action states xrCreateActionSet xrSetInteractionProfileSuggestedBindings xrSyncActions name = "gameplay" /interaction_profiles/oculus/touch_controller session activeActionSets = { "gameplay", ...} xrCreateAction "teleport": /user/hand/right/input/a/click actionSet="gameplay" "teleport_ray": /user/hand/right/input/aim/pose xrGetActionStateBoolean ("teleport_ray") name = “teleport” if (state.currentState) // button is pressed /interaction_profiles/htc/vive_controller type = XR_INPUT_ACTION_TYPE_BOOLEAN { actionSet="gameplay" "teleport": /user/hand/right/input/trackpad/click
    [Show full text]
  • Archive and Compressed [Edit]
    Archive and compressed [edit] Main article: List of archive formats • .?Q? – files compressed by the SQ program • 7z – 7-Zip compressed file • AAC – Advanced Audio Coding • ace – ACE compressed file • ALZ – ALZip compressed file • APK – Applications installable on Android • AT3 – Sony's UMD Data compression • .bke – BackupEarth.com Data compression • ARC • ARJ – ARJ compressed file • BA – Scifer Archive (.ba), Scifer External Archive Type • big – Special file compression format used by Electronic Arts for compressing the data for many of EA's games • BIK (.bik) – Bink Video file. A video compression system developed by RAD Game Tools • BKF (.bkf) – Microsoft backup created by NTBACKUP.EXE • bzip2 – (.bz2) • bld - Skyscraper Simulator Building • c4 – JEDMICS image files, a DOD system • cab – Microsoft Cabinet • cals – JEDMICS image files, a DOD system • cpt/sea – Compact Pro (Macintosh) • DAA – Closed-format, Windows-only compressed disk image • deb – Debian Linux install package • DMG – an Apple compressed/encrypted format • DDZ – a file which can only be used by the "daydreamer engine" created by "fever-dreamer", a program similar to RAGS, it's mainly used to make somewhat short games. • DPE – Package of AVE documents made with Aquafadas digital publishing tools. • EEA – An encrypted CAB, ostensibly for protecting email attachments • .egg – Alzip Egg Edition compressed file • EGT (.egt) – EGT Universal Document also used to create compressed cabinet files replaces .ecab • ECAB (.ECAB, .ezip) – EGT Compressed Folder used in advanced systems to compress entire system folders, replaced by EGT Universal Document • ESS (.ess) – EGT SmartSense File, detects files compressed using the EGT compression system. • GHO (.gho, .ghs) – Norton Ghost • gzip (.gz) – Compressed file • IPG (.ipg) – Format in which Apple Inc.
    [Show full text]