Vulkan on NVIDIA GPUs. Piers Daniell, Driver Software Engineer, OpenGL and Vulkan
|
|
- Melvin Flowers
- 8 years ago
- Views:
Transcription
1 Vulkan on NVIDIA GPUs Piers Daniell, Driver Software Engineer, OpenGL and Vulkan
2 Who am I? Piers Driver Software Engineer - OpenGL, OpenGL ES, Vulkan NVIDIA Khronos representative since 2010 OpenGL, OpenGL ES and Vulkan Author of several extensions and core features Technical lead for OpenGL driver updates 4.1 through 4.5 Technical lead for OpenGL ES 1.1 through ES 3.1+AEP on desktop Technical lead for Vulkan driver 11+ years with NVIDIA 2
3 Agenda Vulkan Primer Vulkan on NVIDIA GPUs 3
4 Vulkan Primer 4
5 What is Vulkan? What developers have been asking for Reduce CPU overhead Scale well with multiple threads Precompiled shaders Predictable no hitching Clean, modern and consistent API no cruft Native tiling and mobile GPU support 5
6 Why is Vulkan important? The only cross-platform next-generation 3D API Vulkan is the only cross-platform next generation API DX12 Windows 10 only Metal Apple only Vulkan can run (almost) anywhere Windows - XP, Vista, 7, 8, 8.1 and 10 Linux SteamOS Android (as determined by supplier)? 6
7 Who s behind Vulkan? Hardware vendors * not a complete list! 7
8 Who s behind Vulkan? Software vendors * not a complete list! 8
9 Vulkan for all GPUs Low-power mobile through high-performance desktop Vulkan is one API for all GPUs Vulkan supports optional fine-grained features and extensions Platforms may define feature sets of their choosing Supports multiple vendors and hardware From ES 3.1 level hardware to GL 4.5 and beyond Tile-based [deferred] hardware - Mobile Feed-forward rasterizing hadware - Desktop 9
10 Vulkan release When can we get it? Khronos goal by the end of 2015 This discussion on the API is high-level Details may change before release! 10
11 Vulkan conformance Ensuring consistent behavior across all implementations Conformance tests under development by Khronos Includes large contributions from several member companies Goal to release full conformance suite with Vulkan 1.0 release Implementation must pass conformance to claim Vulkan support 11
12 Hello Triangle Quick tour of the API Launch driver and create display Set up resources Set up the 3D pipe Shaders State Record commands Submit commands 12
13 Goals: cross-platform, extensible Vulkan Loader Part of the Vulkan ecosystem Khronos provided open-source loader Finds driver and dispatches API calls Supports injectable layers Validation, debug, tracing, capture, etc. Trace/Capture Vulkan application Validation layer Vulkan loader Debug layer Vulkan driver Debugger 13
14 LunarG GLAVE debugger And other tools LunarG and Valve working to create open-source Vulkan tools Vulkan will ship with an SDK More info and a video of GLAVE in action: 14
15 Vulkan Window System Integration WSI for short Goals: cross-platform Khronos defined Vulkan extensions Creates presentation surfaces for window or display Acquires presentable images Application renders to presentable image and enqueues the presentation Supported across wide variety of windowing systems Wayland, X, Windows, etc. 15
16 Hello Triangle Quick tour of the API Launch driver and create display Set up resources Set up the 3D pipe Shaders State Record commands Submit commands 16
17 Goals: explicit API, predictable performance Low-level memory control Console-like access to memory Vulkan exposes several physical memory pools device memory, host visible, etc. Application binds buffer and image virtual memory to physical memory Application is responsible for sub-allocation Physical pages Meets implementation alignment requirements Bound objects 2 objects of compatible types aliasing memory Has GPU virtual address 17
18 Sparse memory More control over memory usage Goals: explicit API Not all virtual memory has to be backed Several feature levels of sparse memory supported ARB_sparse_texture, EXT_sparse_texture2, etc. Physical pages Bound object Defined behavior if GPU accesses here 18
19 Goals: explicit API, predictable performance Resource management Populating buffers and images Vulkan allows some resources to live in CPU-visible memory Some resources can only live in high-bandwidth device-only memory Like specially formatted images for optimal access Data must be copied between buffers Copy can take place in 3D queue or DMA/copy queue Copies can be done asynchronously with other operations Streaming resources without hitching 19
20 Goals: explicit API Populating vidmem Using staging buffers Allocate CPU-visible staging buffers These can be reused Get a pointer with vkmapmemory Memory can remain mapped while in use Copy from staging buffer to device memory Copy command is queued and runs async App image data memcpy to pointer returned by vkmapmemory CPU-visible buffer vkcmdcopybuffertoimage Device only memory Use vkfence for application to know when xfer is done Use vksemaphore for dependencies between command buffers 20
21 Descriptor sets Binding resources to shaders Goals: explicit API Shader resources declared with binding slot number layout(set = 1, binding = 3) uniform image2d myimage; layout(set = 1, binding = 4) uniform sampler mysampler; Descriptor sets allocated from a descriptor pool Descriptor sets updated at any time when not in use Binds buffer, image and sampler resources to slots Descriptor set bound to command buffer for use Activates the descriptor set for use by the next draw 21
22 Multiple descriptor sets Partitioning resources by frequency of update Application can modify just the set of resources that are changing Keep amount of resource binding changes as small as possible Shader code layout(set=0,binding=0) uniform {... } scenedata; layout(set=1,binding=0) uniform {... } modeldata; layout(set=2,binding=0) uniform {... } drawdata; void main() { } Application code foreach (scene) { vkcmdbinddescriptorset(0, 3, {sceneresources,modelresources,drawresources}); foreach (model) { vkcmdbinddescriptorset(1, 2, {modelresources,drawresources}); foreach (draw) { vkcmdbinddescriptorset(2, 1, {drawresources}); vkdraw(); } } } 22
23 Hello Triangle Quick tour of the API Launch driver and create display Set up resources Set up the 3D pipe Shaders State Record commands Submit commands 23
24 SPIR-V Intermediate shader representation Goals: cross-platform implementation consistency Portable binary representation of shaders and compute kernels Can support a wide variety of high-level languages including GLSL Provides consistent front-end and semantics Offline compile can save some runtime compile steps The only shader representation accepted by Vulkan High-level shaders must be compiled to SPIR-V 24
25 SPIR-V For your content pipeline Khronos supported open-source GLSL->SPIR-V compiler - glslang ISVs can easily incorporate into their content pipeline And use their own high-level language SPIR-V provisional specs already published Start preparing your content pipeline today! 25
26 Vulkan shader object Compiling the SPIR-V SPIR-V passed into the driver Driver can compile everything except things that depend on pipeline state Shader object can contain an uber-shader with multiple entry points Specific entry point used for pipeline instance Reuse shader object with multiple pipeline state objects 26
27 Pipeline state object Say goodbye to draw-time validation Goals: explicit API, predictable performance Represents all static state for entire 3D pipeline Shaders, vertex input, rasterization, color blend, depth stencil, etc. Created outside of the performance critical paths Complete set of state for validation and final GPU shader instructions All state-based compilation done here not at draw time Can be cached for reuse Even across application instantiations 27
28 Pipeline cache Reusing previous work Application can allocate and manage pipeline cache objects Pipeline cache objects used with pipeline creation If the pipeline state already exists in the cache it is reused Application can save cache to disk for reuse on next run Using the Vulkan device UUID can even stash in the cloud 28
29 Pipeline layout Using compatible pipelines Pipeline layout defines what kind of resource is in each binding slot Images, Samplers, Buffers (UBO, SSBO) Different pipeline state objects can use the same layout Which means shaders need to use the same layout Changing between compatible pipelines avoids having to rebind all descriptions Or use lots of different descriptor sets 29
30 Dynamic state State that can change easily Dynamic state changes don t affect the pipeline state Does not cause shader recompilation Viewport, scissor, color blend constants, polygon offset, stencil masks and refs All other state has the potential to cause a shader recompile on some hardware So it belongs in the pipeline state object with the shaders 30
31 Hello Triangle Quick tour of the API Launch driver and create display Set up resources Set up the 3D pipe Shaders State Record commands Submit commands 31
32 Renderpass Units of work for tiler-friendly rendering Goals: tiler-friendly API Application defines how framebuffer cache is populated at start Loaded from real framebuffer, cleared or ignored Application defines how framebuffer cache is flushed at the end Stored back to real framebuffer, multi-sample resolved or discarded Application can chain multiple render-passes together Execute all passes and eliminate framebuffer bandwidth between each pass Example: gbuffer creation, light accumulation, final shading and post-process all without framebuffer traffic between steps 32
33 Command buffers and pools A place for the GPU commands A command buffer is an opaque container of GPU commands Command buffers are submitted to a queue for the GPU to schedule execution Commands are adding when the command buffer is recorded Memory for the command buffer is allocated from the command pool Multiple command buffers can allocate from a command pool 33
34 Commands and command buffers Building a command buffer Goals: multi-cpu scalable Start a render pass Bind all the resources Descriptor set(s) Vertex and Index buffers Pipeline state Repeat: change any state and draw Modify dynamic state Draw End render pass 34
35 Command buffer performance Command buffer recording needs to scale well Goals: multi-cpu scalable Recording command buffers is the most performance critical part But we have no idea how big command buffer will end up Can record multiple command buffers simultaneously from multiple threads Command pools ensure there is no lock contention True parallelism provides multi-core scalability Command buffer can be reused, re-recorded or recycled after use Reuse previous allocations by the command pool 35
36 Multi-threading Maximizing parallel multi-cpu execution Goals: multi-cpu scalable Vulkan is designed so all performance critical functions don t take locks Application is responsible for avoiding hazards Use different command buffer pools to allow multi-cpu command buffer recording Use different descriptor pools to allow multi-cpu descriptor set allocations Most resource creation functions take locks But these are not on the performance path 36
37 Compute For all your general-purpose computational needs Uses a special compute pipeline Uses the same descriptor set mechanism as 3D And has access to all the same resources Can be dispatched interleaved with render-passes Or to own queue to execute in parallel 37
38 Resource hazards Application managed Goals: explicit API, predictable performance Resource use from different parts of the GPU may have read/write dependencies For example, will writes to framebuffer be seen later by image sampling Application uses explicit barriers to resolve dependencies GPU may flush/invalidate caches so latest data is written/seen Platform needs vary substantially Application expresses all resource dependencies for full cross-platform support Application also manages resource lifetime Can t destroy a resource until all uses of it have completed 38
39 Avoiding hazards An example sampling from modified image Goals: explicit API Update an image with shader imagestore() calls vkbindpipeline(cmd, pipelineusesimagestore); vkdraw(cmd); Flush imagestore() cache and invalidate image sampling cache vkpipelinebarrier(cmd, image, SHADER_WRITE, SHADER_READ); Can now sample from the updated image vkbindpipeline(cmd, pipelinesamplesfromimage); vkdraw(cmd); 39
40 Hello Triangle Quick tour of the API Launch driver and create display Set up resources Set up the 3D pipe Shaders State Record commands Submit commands 40
41 Queue submission Scheduling the commands in the GPU Goals: explicit API Implementation can expose multiple queues 3D, compute, DMA/copy or universal Queue submission should be cheap Queue execution is asynchronous App uses vkfence to know when work is done App can use vksemaphore to synchronize dependencies between command buffers 41
42 Presentation Using the WSI extension Time Goals: explicit API The final presentable image is queued for presentation Presentation happens asynchronously After present is queued application picks up next available image to render to Present Next Render Present Next Time Image0 Image1 Image1 Image0 Display Image0 displayed, image1 ready for reuse 42
43 GFXBench 5.0 Early alpha content for Vulkan Developed by Kishonti maker of GFXBench Entirely new engine aimed at benchmarking low-level graphics APIs Vulkan, DX12, Metal Concept is a night outdoor scene with aliens Still in alpha for Vulkan, but shows the most important concepts 43
44 Demo: GFXbench 5 alpha Running on Windows 10 44
45 Vulkan on NVIDIA GPUs 45
46 Why is it important to NVIDIA? It s open API is designed to be extensible We can easily expose new GPU features No single vendor or platform owner controls the API Scales from low-power mobile to high-performance desktop Can be used on any platform It s fast! 46
47 What about OpenGL? OpenGL is also very important to NVIDIA OpenGL and OpenGL ES will remain vital Together have largest 3D API market share Applications games, design, medical, science, education, film-production, etc. OpenGL improvements since last year Maxwell extensions (15 of them!) EXT_post_depth_coverage, EXT_raster_multisample, EXT_sparse_texture2, EXT_texture_filter_minmax, NV_conservative_raster, NV_fill_rectangle, NV_fragment_shader_interlock, etc. NV_command_list, OpenGL ES Android Extension Pack, bindless UBO, etc. Even more improvements? Come to the Khronos BOF to find out! 47
48 OpenGL vs Vulkan Solving 3D in different ways OpenGL higher-level API, easier to teach and prototype in Many things handled automatically OpenGL can be used efficiently and obtain great single-threaded performance Use multi-draw, bindless, persistently mapped buffers, PBO, etc. Vulkan s ace is its ability to scale across multiple CPU threads Can be used with almost no lock contention on the performance critical path OpenGL does not have this (yet?) 48
49 Vulkan on NVIDIA GPUs Fully featured Vulkan is one API for all GPUs Vulkan API supports optional features and extensions Supports multiple vendors and hardware From ES 3.1 level hardware to GL 4.5 and beyond NVIDIA implementation fully featured From Tegra K1 through GeForce GTX TITAN X Write once run everywhere 49
50 Vulkan GPU support ARCHITECTURE GPUS Fermi Kepler Maxwell GeForce 400 and 500 series Quadro x00 and x000 series GeForce 600 and 700 series Quadro Kxxx series Tegra K1 GeForce 900 series and TITAN X Quadro Mxxx series Tegra X1 50
51 Vulkan feature support FEATURE FERMI KEPLER MAXWELL OpenGL ES 3.1 level features Yes Yes Yes OpenGL 4.5 level features Yes Yes Yes Sparse memory Partial Partial Yes ETC2, ASTC texture compression No Tegra Tegra 51
52 Vulkan OS support Everywhere we can Windows XP, Vista, 7, 8, 8.1 and 10 Linux SteamOS Android SHIELD Tablet and SHIELD Android TV 52
53 NVIDIA implementation walkthrough Using GameWorks cadscene sample GL version is open source Vulkan version will be made available after spec release CPU bound under OpenGL with large models GPU bound on Vulkan! 53
54 The NVIDIA Vulkan driver Hosted by the OpenGL driver OpenGL and Vulkan share driver OpenGL portion dormant Vulkan Application Performance critical path direct to GPU Utility for resource and GPU management OpenGL Utility Vulkan GPU 54
55 Vulkan and OpenGL Living happily together OpenGL and Vulkan paths to hardware remain separate Mixed OpenGL Vulkan Application cadscene Can share resources Performance optimal OpenGL Utility Vulkan GPU 55
56 Benefits of mixed driver Efficiency for all Ease transition to Vulkan Allows applications to incrementally add Vulkan where it matters most If you can get OpenGL, you can get Vulkan Leveraged driver development 56
57 From OpenGL to Vulkan Porting your existing code Take incremental steps using AZDO (Aproaching zero-overhead driver) Persistent buffers, multi-draw indirect, bindless resources, etc. Start using NV_command_list See Best of GTC talk on NV_command_list Monday 2pm by Tristan Lorach Port performance-critical parts to Vulkan Can leave other stuff in OpenGL 57
58 Vulkan goals How do we meet these goals? Reduce CPU overhead Scale well with multiple threads Predictable no hitching Mobile GPU support 58
59 Demo: Vulkan cadscene CPU overhead, multi-cpu scaling, pipeline changes 59
60 cadscene on Shield Using the GameWorks cross-platform SDK Same framework used for NVIDIA GameWorks samples Supports cross-platform development Code for Windows, Linux and Android 60
61 GameWorks framework Build, deploy and debug Android code right from Visual Studio Coming for Vulkan 61
62 Demo: Vulkan cadscene on Shield Interactive high-polygon count CAD models 62
63 Vulkan driver And how do I get one? Before Vulkan spec release Become a Khronos member Sign an NDA After Vulkan spec release (later this year!) Download from nvidia.com 63
64 More Vulkan at SIGGRAPH Don t miss a thing Course: Moving Mobile Graphics Sunday 2pm 5:15pm Course: An Overview of Next-Generation Graphics APIs Tuesday 9am 12:15pm Khronos Birds of a Feather Wednesday 5:30pm 7:30pm Party! 7:30pm 10pm 64
65 Thank you! Get your free Khronos Vulkan t-shirts! 65
66 Questions? Piers Daniell, Driver Software Engineer, OpenGL and Vulkan
Optimizing AAA Games for Mobile Platforms
Optimizing AAA Games for Mobile Platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Epic Games, Unreal Engine 15 years in the industry 30 years of programming C64 demo
More informationPerformance Optimization and Debug Tools for mobile games with PlayCanvas
Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with
More informationANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA
ANDROID DEVELOPER TOOLS TRAINING GTC 2014 Sébastien Dominé, NVIDIA AGENDA NVIDIA Developer Tools Introduction Multi-core CPU tools Graphics Developer Tools Compute Developer Tools NVIDIA Developer Tools
More informationLow power GPUs a view from the industry. Edvard Sørgård
Low power GPUs a view from the industry Edvard Sørgård 1 ARM in Trondheim Graphics technology design centre From 2006 acquisition of Falanx Microsystems AS Origin of the ARM Mali GPUs Main activities today
More informationTEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING
TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING NVIDIA DEVELOPER TOOLS BUILD. DEBUG. PROFILE. C/C++ IDE INTEGRATION STANDALONE TOOLS HARDWARE SUPPORT CPU AND GPU DEBUGGING & PROFILING
More informationPress Briefing. GDC, March 2014. Neil Trevett Vice President Mobile Ecosystem, NVIDIA President Khronos. Copyright Khronos Group 2014 - Page 1
Copyright Khronos Group 2014 - Page 1 Press Briefing GDC, March 2014 Neil Trevett Vice President Mobile Ecosystem, NVIDIA President Khronos Copyright Khronos Group 2014 - Page 2 Lots of Khronos News at
More informationShader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group
Shader Model 3.0 Ashu Rege NVIDIA Developer Technology Group Talk Outline Quick Intro GeForce 6 Series (NV4X family) New Vertex Shader Features Vertex Texture Fetch Longer Programs and Dynamic Flow Control
More informationOptimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August
Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August Agenda Introduction The author and ARM Preliminary knowledge Unity Pro, OpenGL ES 3.0 Identify
More informationWhat is GPUOpen? Currently, we have divided console & PC development Black box libraries go against the philosophy of game development Game
1 2 3 4 What is GPUOpen? Currently, we have divided console & PC development Black box libraries go against the philosophy of game development Game developers are smart and inquisitive Game devs extract
More informationCLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014
CLOUD GAMING WITH NVIDIA GRID TECHNOLOGIES Franck DIARD, Ph.D., SW Chief Software Architect GDC 2014 Introduction Cloud ification < 2013 2014+ Music, Movies, Books Games GPU Flops GPUs vs. Consoles 10,000
More informationHow To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)
Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Brains Eden, 28 th June 2013 Agenda Introduction The author ARM Ltd. What do you need to have What do you need to know Identify
More informationComputer Graphics Hardware An Overview
Computer Graphics Hardware An Overview Graphics System Monitor Input devices CPU/Memory GPU Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and
More informationNVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA
NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA GFLOPS 3500 3000 NVPRO-PIPELINE Peak Double Precision FLOPS GPU perf improved
More informationHow To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen 4.2.2 Powergen 3
Profiling and Debugging Tools for High-performance Android Applications Stephen Jones, Product Line Manager, NVIDIA (sjones@nvidia.com) Android By The Numbers 1.3M Android activations per day Android activations
More informationCloud Gaming & Application Delivery with NVIDIA GRID Technologies. Franck DIARD, Ph.D. GRID Architect, NVIDIA
Cloud Gaming & Application Delivery with NVIDIA GRID Technologies Franck DIARD, Ph.D. GRID Architect, NVIDIA What is GRID? Using efficient GPUS in efficient servers What is Streaming? Transporting pixels
More informationGraphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011
Graphics Cards and Graphics Processing Units Ben Johnstone Russ Martin November 15, 2011 Contents Graphics Processing Units (GPUs) Graphics Pipeline Architectures 8800-GTX200 Fermi Cayman Performance Analysis
More informationOverview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions
Module 4: Beyond Static Scalar Fields Dynamic Volume Computation and Visualization on the GPU Visualization and Computer Graphics Group University of California, Davis Overview Motivation and applications
More informationBRINGING UNREAL ENGINE 4 TO OPENGL Nick Penwarden Epic Games Mathias Schott, Evan Hart NVIDIA
BRINGING UNREAL ENGINE 4 TO OPENGL Nick Penwarden Epic Games Mathias Schott, Evan Hart NVIDIA March 20, 2014 About Us Nick Penwarden Lead Graphics Programmer Epic Games @nickpwd on Twitter Mathias Schott
More informationOverview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming
Overview Lecture 1: an introduction to CUDA Mike Giles mike.giles@maths.ox.ac.uk hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
More informationMidgard GPU Architecture. October 2014
Midgard GPU Architecture October 2014 1 The Midgard Architecture HARDWARE EVOLUTION 2 3 Mali GPU Roadmap Mali-T760 High-Level Architecture Distributes tasks to shader cores Efficient mapping of geometry
More informationHow To Develop Android On Your Computer Or Tablet Or Phone
AN INTRODUCTION TO ANDROID DEVELOPMENT CS231M Alejandro Troccoli Outline Overview of the Android Operating System Development tools Deploying application packages Step-by-step application development The
More informationDATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER
DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER RAMA HOETZLEIN, DEVELOPER TECHNOLOGY, NVIDIA Data Visualizations assist humans with data analysis by representing information
More informationCSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University
GPU Generations CSE 564: Visualization GPU Programming (First Steps) Klaus Mueller Computer Science Department Stony Brook University For the labs, 4th generation is desirable Graphics Hardware Pipeline
More informationIntroducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child
Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.
More informationNVFX : A NEW SCENE AND MATERIAL EFFECT FRAMEWORK FOR OPENGL AND DIRECTX. TRISTAN LORACH Senior Devtech Engineer SIGGRAPH 2013
NVFX : A NEW SCENE AND MATERIAL EFFECT FRAMEWORK FOR OPENGL AND DIRECTX TRISTAN LORACH Senior Devtech Engineer SIGGRAPH 2013 nvfx : Plan What is an Effect New Approach and new ideas of nvfx Examples Walkthrough
More informationRecent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005
Recent Advances and Future Trends in Graphics Hardware Michael Doggett Architect November 23, 2005 Overview XBOX360 GPU : Xenos Rendering performance GPU architecture Unified shader Memory Export Texture/Vertex
More informationIntroduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it
t.diamanti@cineca.it Agenda From GPUs to GPGPUs GPGPU architecture CUDA programming model Perspective projection Vectors that connect the vanishing point to every point of the 3D model will intersecate
More informationGetting Started with CodeXL
AMD Developer Tools Team Advanced Micro Devices, Inc. Table of Contents Introduction... 2 Install CodeXL... 2 Validate CodeXL installation... 3 CodeXL help... 5 Run the Teapot Sample project... 5 Basic
More informationEqualizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH
Equalizer Parallel OpenGL Application Framework Stefan Eilemann, Eyescale Software GmbH Outline Overview High-Performance Visualization Equalizer Competitive Environment Equalizer Features Scalability
More informationImage Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg
Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing
More informationGPU Profiling with AMD CodeXL
GPU Profiling with AMD CodeXL Software Profiling Course Hannes Würfel OUTLINE 1. Motivation 2. GPU Recap 3. OpenCL 4. CodeXL Overview 5. CodeXL Internals 6. CodeXL Profiling 7. CodeXL Debugging 8. Sources
More informationThe Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA
The Evolution of Computer Graphics Tony Tamasi SVP, Content & Technology, NVIDIA Graphics Make great images intricate shapes complex optical effects seamless motion Make them fast invent clever techniques
More informationOpenGL Performance Tuning
OpenGL Performance Tuning Evan Hart ATI Pipeline slides courtesy John Spitzer - NVIDIA Overview What to look for in tuning How it relates to the graphics pipeline Modern areas of interest Vertex Buffer
More informationAGENDA. Overview GPU Video Encoding NVIDIA Video Encoding Capabilities. Software API Performance & Quality. Kepler vs Maxwell GPU capabilities Roadmap
HIGH PERFORMANCE VIDEO ENCODING USING NVIDIA GPUS Abhijit Patait Sr. Manager, GPU Multimedia SW AGENDA Overview GPU Video Encoding NVIDIA Video Encoding Capabilities Kepler vs Maxwell GPU capabilities
More informationComputer Graphics on Mobile Devices VL SS2010 3.0 ECTS
Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS Peter Rautek Rückblick Motivation Vorbesprechung Spiel VL Framework Ablauf Android Basics Android Specifics Activity, Layouts, Service, Intent, Permission,
More informationProgramming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga
Programming models for heterogeneous computing Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Talk outline [30 slides] 1. Introduction [5 slides] 2.
More informationGPU Computing - CUDA
GPU Computing - CUDA A short overview of hardware and programing model Pierre Kestener 1 1 CEA Saclay, DSM, Maison de la Simulation Saclay, June 12, 2012 Atelier AO and GPU 1 / 37 Content Historical perspective
More informationRadeon HD 2900 and Geometry Generation. Michael Doggett
Radeon HD 2900 and Geometry Generation Michael Doggett September 11, 2007 Overview Introduction to 3D Graphics Radeon 2900 Starting Point Requirements Top level Pipeline Blocks from top to bottom Command
More informationHow To Teach Computer Graphics
Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session General Introduction http://www.cs.vu.nl/~graphics/
More informationGPGPU Computing. Yong Cao
GPGPU Computing Yong Cao Why Graphics Card? It s powerful! A quiet trend Copyright 2009 by Yong Cao Why Graphics Card? It s powerful! Processor Processing Units FLOPs per Unit Clock Speed Processing Power
More informationGPU Architecture. Michael Doggett ATI
GPU Architecture Michael Doggett ATI GPU Architecture RADEON X1800/X1900 Microsoft s XBOX360 Xenos GPU GPU research areas ATI - Driving the Visual Experience Everywhere Products from cell phones to super
More informationNVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect
SIGGRAPH 2013 Shaping the Future of Visual Computing NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect NVIDIA
More informationWriting Applications for the GPU Using the RapidMind Development Platform
Writing Applications for the GPU Using the RapidMind Development Platform Contents Introduction... 1 Graphics Processing Units... 1 RapidMind Development Platform... 2 Writing RapidMind Enabled Applications...
More informationParallel Web Programming
Parallel Web Programming Tobias Groß, Björn Meier Hardware/Software Co-Design, University of Erlangen-Nuremberg May 23, 2013 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development
More informationL20: GPU Architecture and Models
L20: GPU Architecture and Models scribe(s): Abdul Khalifa 20.1 Overview GPUs (Graphics Processing Units) are large parallel structure of processing cores capable of rendering graphics efficiently on displays.
More informationSYCL for OpenCL. Andrew Richards, CEO Codeplay & Chair SYCL Working group GDC, March 2014. Copyright Khronos Group 2014 - Page 1
SYCL for OpenCL Andrew Richards, CEO Codeplay & Chair SYCL Working group GDC, March 2014 Copyright Khronos Group 2014 - Page 1 Where is OpenCL today? OpenCL: supported by a very wide range of platforms
More informationHIGH PERFORMANCE VIDEO ENCODING WITH NVIDIA GPUS
April 4-7, 2016 Silicon Valley HIGH PERFORMANCE VIDEO ENCODING WITH NVIDIA GPUS Abhijit Patait Eric Young April 4 th, 2016 NVIDIA GPU Video Technologies Video Hardware Capabilities AGENDA Video Software
More informationReal-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university
Real-Time Realistic Rendering Michael Doggett Docent Department of Computer Science Lund university 30-5-2011 Visually realistic goal force[d] us to completely rethink the entire rendering process. Cook
More informationDeveloper Tools. Tim Purcell NVIDIA
Developer Tools Tim Purcell NVIDIA Programming Soap Box Successful programming systems require at least three tools High level language compiler Cg, HLSL, GLSL, RTSL, Brook Debugger Profiler Debugging
More informationAdvanced Rendering for Engineering & Styling
Advanced Rendering for Engineering & Styling Prof. B.Brüderlin Brüderlin,, M Heyer 3Dinteractive GmbH & TU-Ilmenau, Germany SGI VizDays 2005, Rüsselsheim Demands in Engineering & Styling Engineering: :
More informationSilverlight for Windows Embedded Graphics and Rendering Pipeline 1
Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,
More informationNVIDIA GeForce GTX 580 GPU Datasheet
NVIDIA GeForce GTX 580 GPU Datasheet NVIDIA GeForce GTX 580 GPU Datasheet 3D Graphics Full Microsoft DirectX 11 Shader Model 5.0 support: o NVIDIA PolyMorph Engine with distributed HW tessellation engines
More informationIntel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth
Application Software Development Tool Suite 2.2 for Atom processor In-Depth Contents Application Software Development Tool Suite 2.2 for Atom processor............................... 3 Features and Benefits...................................
More informationOpenACC 2.0 and the PGI Accelerator Compilers
OpenACC 2.0 and the PGI Accelerator Compilers Michael Wolfe The Portland Group michael.wolfe@pgroup.com This presentation discusses the additions made to the OpenACC API in Version 2.0. I will also present
More informationApplications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61
F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase
More informationSeveral tips on how to choose a suitable computer
Several tips on how to choose a suitable computer This document provides more specific information on how to choose a computer that will be suitable for scanning and postprocessing of your data with Artec
More informationNext Generation GPU Architecture Code-named Fermi
Next Generation GPU Architecture Code-named Fermi The Soul of a Supercomputer in the Body of a GPU Why is NVIDIA at Super Computing? Graphics is a throughput problem paint every pixel within frame time
More informationMaking Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association
Making Multicore Work and Measuring its Benefits Markus Levy, president EEMBC and Multicore Association Agenda Why Multicore? Standards and issues in the multicore community What is Multicore Association?
More informationJavaFX Session Agenda
JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user
More informationIntroduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software
GPU Computing Numerical Simulation - from Models to Software Andreas Barthels JASS 2009, Course 2, St. Petersburg, Russia Prof. Dr. Sergey Y. Slavyanov St. Petersburg State University Prof. Dr. Thomas
More informationBuilding Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
More informationOctaVis: A Simple and Efficient Multi-View Rendering System
OctaVis: A Simple and Efficient Multi-View Rendering System Eugen Dyck, Holger Schmidt, Mario Botsch Computer Graphics & Geometry Processing Bielefeld University Abstract: We present a simple, low-cost,
More informationGPU Parallel Computing Architecture and CUDA Programming Model
GPU Parallel Computing Architecture and CUDA Programming Model John Nickolls Outline Why GPU Computing? GPU Computing Architecture Multithreading and Arrays Data Parallel Problem Decomposition Parallel
More informationMulti-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
More informationA little code goes a long way Cross-platform game development with Lua. Ivan Beliy, Software Engineer
A little code goes a long way Cross-platform game development with Lua Ivan Beliy, Software Engineer 9/25/14 Marmalade. Trademarks belong to their respective owners. All rights reserved. 1 A bit of History!
More informationRadeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008
Radeon GPU Architecture and the series Michael Doggett Graphics Architecture Group June 27, 2008 Graphics Processing Units Introduction GPU research 2 GPU Evolution GPU started as a triangle rasterizer
More informationVirtual Desktop VMware View Horizon
Virtual Desktop VMware View Horizon Presenter - Scott Le Marquand VMware Virtualization consultant with 6 years consultancy experience VMware Certified Professional 5 Data Center Virtualization VMware
More informationHIGH-PERFORMANCE GPU VIDEO ENCODING ABHIJIT PATAIT SR. MANAGER, NVIDIA
HIGH-PERFORMANCE GPU VIDEO ENCODING ABHIJIT PATAIT SR. MANAGER, NVIDIA AGENDA GPU Video Encoding Overview NVIDIA Video Encoding Capabilities Kepler, Maxwell Gen 1, Maxwell Gen 2 Software API Performance
More informationIntroduction to WebGL
Introduction to WebGL Alain Chesnais Chief Scientist, TrendSpottr ACM Past President chesnais@acm.org http://www.linkedin.com/in/alainchesnais http://facebook.com/alain.chesnais Housekeeping If you are
More informationThe Future Of Animation Is Games
The Future Of Animation Is Games 王 銓 彰 Next Media Animation, Media Lab, Director cwang@1-apple.com.tw The Graphics Hardware Revolution ( 繪 圖 硬 體 革 命 ) : GPU-based Graphics Hardware Multi-core (20 Cores
More informationVA (Video Acceleration) API. Jonathan Bian 2009 Linux Plumbers Conference
VA (Video Acceleration) API Jonathan Bian 2009 Linux Plumbers Conference Motivation for creating a new API Lack of a video decode acceleration API for Unixlike OS that fully exposes fixed function video
More informationAn Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
More informationPerformance Testing in Virtualized Environments. Emily Apsey Product Engineer
Performance Testing in Virtualized Environments Emily Apsey Product Engineer Introduction Product Engineer on the Performance Engineering Team Overview of team - Specialty in Virtualization - Citrix, VMWare,
More informationCS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
More informationAmazon EC2 Product Details Page 1 of 5
Amazon EC2 Product Details Page 1 of 5 Amazon EC2 Functionality Amazon EC2 presents a true virtual computing environment, allowing you to use web service interfaces to launch instances with a variety of
More informationQuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Technical Specifications
J3G90AA INTRODUCTION The NVIDIA Quadro K5200 gives you amazing application performance and capability, making it faster and easier to accelerate 3D models, render complex scenes, and simulate large datasets.
More information2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT
COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system
More informationGPU Usage. Requirements
GPU Usage Use the GPU Usage tool in the Performance and Diagnostics Hub to better understand the high-level hardware utilization of your Direct3D app. You can use it to determine whether the performance
More informationHow to choose a suitable computer
How to choose a suitable computer This document provides more specific information on how to choose a computer that will be suitable for scanning and post-processing your data with Artec Studio. While
More informationUsing MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam sastry.vedantam@oracle.com
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam sastry.vedantam@oracle.com Agenda The rise of Big Data & Hadoop MySQL in the Big Data Lifecycle MySQL Solutions for Big Data Q&A
More informationStream Processing on GPUs Using Distributed Multimedia Middleware
Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research
More informationCrosswalk: build world class hybrid mobile apps
Crosswalk: build world class hybrid mobile apps Ningxin Hu Intel Today s Hybrid Mobile Apps Application HTML CSS JS Extensions WebView of Operating System (Tizen, Android, etc.,) 2 State of Art HTML5 performance
More informationThe Windows Web Platform. Michael Epprecht Microsoft Switzerland michael.epprecht@microsoft.com twitter: fastflame
The Windows Web Platform Michael Epprecht Microsoft Switzerland michael.epprecht@microsoft.com twitter: fastflame Star Map April 1994 to August 1995 Page Views per Day: 124'655 Number of Servers: 3 3
More informationAndroid Development: Part One
Android Development: Part One This workshop will introduce you to the nature of the Android development platform. We begin with an overview of the platform s development history and some discussion of
More informationAMD CodeXL 1.7 GA Release Notes
AMD CodeXL 1.7 GA Release Notes Thank you for using CodeXL. We appreciate any feedback you have! Please use the CodeXL Forum to provide your feedback. You can also check out the Getting Started guide on
More informationWhite Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux
White Paper Real-time Capabilities for Linux SGI REACT Real-Time for Linux Abstract This white paper describes the real-time capabilities provided by SGI REACT Real-Time for Linux. software. REACT enables
More informationGPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith
GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series By: Binesh Tuladhar Clay Smith Overview History of GPU s GPU Definition Classical Graphics Pipeline Geforce 6 Series Architecture Vertex
More informationOverview. The Android operating system is like a cake consisting of various layers.
The Android Stack Overview The Android operating system is like a cake consisting of various layers. Each layer has its own characteristics and purpose but the layers are not always cleanly separated and
More informationQuickSpecs. NVIDIA Quadro K5200 8GB Graphics INTRODUCTION. NVIDIA Quadro K5200 8GB Graphics. Overview. NVIDIA Quadro K5200 8GB Graphics J3G90AA
Overview J3G90AA INTRODUCTION The NVIDIA Quadro K5200 gives you amazing application performance and capability, making it faster and easier to accelerate 3D models, render complex scenes, and simulate
More informationParallel Computing: Strategies and Implications. Dori Exterman CTO IncrediBuild.
Parallel Computing: Strategies and Implications Dori Exterman CTO IncrediBuild. In this session we will discuss Multi-threaded vs. Multi-Process Choosing between Multi-Core or Multi- Threaded development
More informationThe Most Popular UI/Apps Framework For IVI on Linux
The Most Popular UI/Apps Framework For IVI on Linux About me Tasuku Suzuki Qt Engineer Qt, Developer Experience and Marketing, Nokia Have been using Qt since 2002 Joined Trolltech in 2006 Nokia since 2008
More informationNVIDIA CUDA GETTING STARTED GUIDE FOR MICROSOFT WINDOWS
NVIDIA CUDA GETTING STARTED GUIDE FOR MICROSOFT WINDOWS DU-05349-001_v6.0 February 2014 Installation and Verification on TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. System Requirements... 1 1.2.
More informationIntroduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1
Introduction to GP-GPUs Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1 GPU Architectures: How do we reach here? NVIDIA Fermi, 512 Processing Elements (PEs) 2 What Can It Do?
More informationCSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
More informationWeb Based 3D Visualization for COMSOL Multiphysics
Web Based 3D Visualization for COMSOL Multiphysics M. Jüttner* 1, S. Grabmaier 1, W. M. Rucker 1 1 University of Stuttgart Institute for Theory of Electrical Engineering *Corresponding author: Pfaffenwaldring
More informationAPPLICATION VIRTUALIZATION TECHNOLOGIES WHITEPAPER
APPLICATION VIRTUALIZATION TECHNOLOGIES WHITEPAPER Oct 2013 INTRODUCTION TWO TECHNOLOGY CATEGORIES Application virtualization technologies can be divided into two main categories: those that require an
More informationOverview of CS 282 & Android
Overview of CS 282 & Android Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282
More informationTable of Contents. P a g e 2
Solution Guide Balancing Graphics Performance, User Density & Concurrency with NVIDIA GRID Virtual GPU Technology (vgpu ) for Autodesk AutoCAD Power Users V1.0 P a g e 2 Table of Contents The GRID vgpu
More informationHigh Performance or Cycle Accuracy?
CHIP DESIGN High Performance or Cycle Accuracy? You can have both! Bill Neifert, Carbon Design Systems Rob Kaye, ARM ATC-100 AGENDA Modelling 101 & Programmer s View (PV) Models Cycle Accurate Models Bringing
More informationCross-Platform GP with Organic Vectory BV Project Services Consultancy Services Expertise Markets 3D Visualization Architecture/Design Computing Embedded Software GIS Finance George van Venrooij Organic
More information