Programming GPUs with CUDA
|
|
|
- Natalie Holly Owens
- 9 years ago
- Views:
Transcription
1 Programming GPUs with CUDA Max Grossman Department of Computer Science Rice University COMP 422 Lecture April 2016
2 Why GPUs? Two major trends GPU performance is pulling away from traditional processors (FERMI) (FERMI) availability of general (non-graphics) programming interfaces GPU in every PC and workstation massive volume, potentially broad impact Figure Credits: NVIDIA CUDA Compute Unified Device Architecture Programming Guide 3.1 2
3 Power and Area Efficiency GPU 3
4 GPGPU? General Purpose computation using GPU applications beyond 3D graphics typically, data-intensive science and engineering applications Data-intensive algorithms leverage GPU attributes large data arrays, streaming throughput fine-grain single instruction multiple threads (SIMT) parallelism low-latency floating point computation 4
5 GPGPU Programming in 2005 Stream-based programming model Express algorithms in terms of graphics operations use GPU pixel shaders as general-purpose SP floating point units Directly exploit pixel shaders vertex shaders video memory threads interact through off-chip video memory Example: GPUSort (Govindaraju, Manocha; 2005) Figure Credits: Dongho Kim, School of Media, Soongsil University 5
6 Fragment from GPUSort //invert the other half of the bitonic array and merge glbegin(gl_quads); for(int start=0; start<num_quads; start++){ gltexcoord2f(s+width,0); glvertex2f(s,0); gltexcoord2f(s+width/2,0); glvertex2f(s+width/2,0); gltexcoord2f(s+width/2,height); glvertex2f(s+width/2,height); gltexcoord2f(s+width,height); glvertex2f(s,height); s+=width; } glend(); (Govindaraju, Manocha; 2005) 6
7 CUDA CUDA = Compute Unified Device Architecture Software platform for parallel computing on Nvidia GPUs introduced in 2006 Nvidia s repositioning of GPUs as versatile compute devices C plus a few simple extensions write a program for one thread instantiate for many parallel threads familiar language; simple data-parallel extensions CUDA is a scalable parallel programming model runs on any number of processors without recompiling Slide credit: Patrick LeGresley, NVidia 7
8 NVIDIA Fermi GPU (2010) 3.0B transistors 15 SMs; 1 SM disabled for yield 32 CUDA cores per SM CUDA core = programmable shader 480 cores total Figure credit: 8
9 NVIDIA s Fermi GPU Configurable L1 data cache 48K shared memory / 16K L1 cache 48K L1 cache / 16K shared memory 768K L2 cache 4 SFU (transcendental math and interpolation) per SM 16 LD/ST units per SM 16 DP FMA per clock per SM GigaThread Engine execute up to 16 concurrent kernels Unified address space thread local, block shared, global supports C/C++ pointers ECC support Figure Credit: NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf Fermi Streaming Multiprocessor 9
10 NVIDIA GPU Stats Through Fermi Note: Fermi specification here is pre-release. Actual cores = 480 Figure Credit: 10
11 NVIDIA Kepler GK110 (May 2012) 28nm chip, 7.1B transistors 15 Streaming Multiprocessors 192 CUDA cores fully pipelined FP and INT units IEEE ; fused multiply add four warp schedulers 32-thread groups (warps) 4 warps issue and execute concurrently 2 inst/warp/cycle 64 DP FP units 32 SFU 32 LD/ST units 6 64-bit memory controllers 11
12 Why CUDA? Business rationale opportunity for Nvidia to sell more chips extend the demand from graphics into HPC insurance against uncertain future for discrete GPUs both Intel and AMD integrating GPUs onto microprocessors Technical rationale hides GPU architecture behind the programming API programmers never write directly to the metal insulate programmers from details of GPU hardware enables Nvidia to change GPU architecture completely, transparently preserve investment in CUDA programs simplifies the programming of multithreaded hardware CUDA automatically manages threads 12
13 CUDA Design Goals Support heterogeneous parallel programming (CPU + GPU) Scale to hundreds of cores, thousands of parallel threads Enable programmer to focus on parallel algorithms not GPU characteristics, programming language, scheduling... 13
14 CUDA Software Stack for Heterogeneous Computing Figure Credit: NVIDIA CUDA Compute Unified Device Architecture Programming Guide
15 Key CUDA Abstractions Hierarchy of concurrent threads Lightweight synchronization primitives Shared memory model for cooperating threads 15
16 Hierarchy of Concurrent Threads Parallel kernels composed of many threads all threads execute same sequential program use parallel threads rather than sequential loops Threads are grouped into thread blocks threads in block can sync and share memory Blocks are grouped into grids threads and blocks have unique IDs threadidx: 1D, 2D, or 3D blockidx: 1D or 2D simplifies addressing when processing multidimensional data Slide credit: Patrick LeGresley, NVidia 16
17 CUDA Programming Example Computing y = ax + y with a serial loop void saxpy_serial(int n, float alpha, float *x, float *y) { for (int i = 0; i< n; i++) y[i] = alpha * x[i] + y[i]; } // invoke serial saxpy kernel saxpy_serial(n, 2.0, x, y) Host code Computing y = ax + y in parallel using CUDA global void saxpy_parallel(int n, float alpha, float *x, float *y) { int i = blockidx.x * blockdim.x + threadidx.x; if (i < n) y[i] = alpha * x[i] + y[i]; } Device code // invoke parallel saxpy kernel (256 threads per block) int nblocks = (n + 255)/256 saxpy_parallel<<<nblocks, 256>>>(n, 2.0, x, y) Host code 17
18 Synchronization and Coordination Threads within a block may synchronize with barriers... step 1... syncthreads();... step 2... Blocks can coordinate via atomic memory operations e.g. increment shared counter with atomicinc() 18
19 CPU vs. GPGPU vs. CUDA Comparing the abstract models CPU GPGPU CUDA/GPGPU CPU Figure Credit: 19
20 CUDA Memory Model Figure credits: Patrick LeGresley, NVidia 20
21 Memory Model (Continued) Figure credit: Patrick LeGresley, NVidia 21
22 Memory Access Latencies (FERMI) Registers: each SM has 32KB of registers each thread has private registers max # of registers / kernel: 63 latency: ~1 cycle; bandwidth ~8,000 GB/s L1+Shared Memory: on-chip memory that can be used either as L1 cache to share data among threads in the same thread block 64 KB memory: 48 KB shared / 16 KB L1; 16 KB shared / 48 KB L1 latency: cycles. bandwidth ~1,600 GB/s Local Memory: holds "spilled" registers, arrays L2 Cache: 768 KB unified L2 cache, shared among the 16 SMs caches load/store from/to global memory, copies to/from CPU host, and texture requests L2 implements atomic operations Global Memory: Accessible by all threads as well as host (CPU). High latency ( cycles), but generally cached 22
23 Minimal Extensions to C Declaration specifiers to indicate where things live functions global void KernelFunc(...); // kernel callable from host must return void device float DeviceFunc(...); // function callable on device no recursion no static variables within function host float HostFunc(); // only callable on host variables (later slide) Extend function invocation syntax for parallel kernel launch KernelFunc<<<500, 128>>>(...); // 500 blocks, 128 threads each Built-in variables for thread identification in kernels dim3 threadidx; dim3 blockidx; dim3 blockdim; 23
24 Invoking a Kernel Function Call kernel function with an execution configuration Any call to a kernel function is asynchronous explicit synchronization is needed to block cudathreadsynchronize() forces runtime to wait until all preceding device tasks have finished 24
25 Example of CUDA Thread Organization Grid as 2D array of blocks Block as 3D array of threads global void KernelFunction(...); dim3 dimblock(4, 2, 2); dim3 dimgrid(2, 2, 1); KernelFunction<<<dimGrid, dimblock>>>(...); 25
26 CUDA Variable Declarations device is optional with local, shared, or constant Automatic variables without any qualifier reside in a register except arrays: reside in local memory Pointers allocated on the host and passed to the kernel global void Kernelfunc(float *ptr) address obtained for a global variable: float *ptr = &GlobalVar 26
27 Using Per Block Shared Memory Share variables among threads in a block with shared memory shared int scratch[blocksize]; scratch[threadidx.x] = arr[threadidx.x]; //... // compute on scratch values //... arr[threadidx.x] = scratch[threadidx.x]; Communicate values between threads scratch[threadidx.x] = arr[threadidx.x]; syncthreads(); int left = scratch[threadidx.x - 1]; 27
28 Features Available in GPU Code Special variables for thread identification in kernels dim3 threadidx; dim3 blockidx; dim3 blockdim; Intrinsics that expose specific operations in kernel code _syncthreads(); // barrier synchronization Standard math library operations exponentiation, truncation and rounding, trigonometric functions, min/max/abs, log, quotient/remainder, etc. Atomic memory operations atomicadd, atomicmin, atomicand, atomiccas, etc. 28
29 Runtime Support Memory management for pointers to GPU memory cudamalloc(), cudafree() Copying from host to/from device, device to device cudamemcpy(), cudamemcpy2d(), cudamemcpy3d() 29
30 More Complete Example: Vector Addition kernel code... 30
31 Vector Addition Host Code 31
32 Extended C Summary 32
33 Compiling CUDA 33
34 Ideal CUDA programs High intrinsic parallelism e.g. per-element operations Minimal communication (if any) between threads limited synchronization High ratio of arithmetic to memory operations Few control flow statements SIMT execution divergent paths among threads in a block may be serialized (costly) compiler may replace conditional instructions by predicated operations to reduce divergence 34
35 CUDA Matrix Multiply: Host Code 35
36 CUDA Matrix Multiply: Device Code 36
37 Concurrent Kernel Execution in Fermi 37
38 Optimization Considerations Kernel optimizations make use of shared memory minimize use divergent control flow SIMT execution must follow all paths taken within a thread group use intrinsic instructions when possible exploit the hardware support behind them CPU/GPU interaction use asynchronous memory copies Key resource considerations for Fermi GPU s max dimensions of a block (1024, 1024, 64) max 1024 threads per block 32K registers per SM 16 KB / 48KB cache 48 KB / 16KB shared memory see the programmer s guide for a complete set of limits for compute capability 2.x 38
39 CUDA Resources General information about CUDA Nvidia GPUs compatible with CUDA CUDA sample source code Download the CUDA SDK 39
40 Portable CUDA Alternative: OpenCL Framework for writing programs that execute on heterogeneous platforms, including CPUs, GPUs, etc. supports both task and data parallelism based on subset of ISO C99 with extensions for parallelism numerics based on IEEE 754 floating point standard efficiently interoperated with graphics APIs, e.g. OpenGL OpenCL managed by non-profit Khronos Group Initial specification approved for public release Dec. 8, 2008 specification 1.2 released Nov 14,
41 OpenCL Kernel Example: 1D FFT 41
42 OpenCL Host Program: 1D FFT 42
43 References Patrick LeGresley, High Performance Computing with CUDA, Stanford University Colloquium, October 2008, docs/seminars/legresley pdf Vivek Sarkar. Introduction to General-Purpose computation on GPUs (GPGPUs), COMP 635, September 2007 Rob Farber. CUDA, Supercomputing for the Masses, Parts 1-11, Dr. Dobb s Portal, April 2008-March Tom Halfhill. Parallel Processing with CUDA, Microprocessor Report, January N. Govindaraju et al. A cache-efficient sorting algorithm for database and data mining computations using graphics processors. gamma.cs.unc.edu/sort/gpusort.pdf
Introduction 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?
GPU 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
Next 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
Overview. 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 [email protected] hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
GPU 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
CUDA Basics. Murphy Stein New York University
CUDA Basics Murphy Stein New York University Overview Device Architecture CUDA Programming Model Matrix Transpose in CUDA Further Reading What is CUDA? CUDA stands for: Compute Unified Device Architecture
Accelerating Intensity Layer Based Pencil Filter Algorithm using CUDA
Accelerating Intensity Layer Based Pencil Filter Algorithm using CUDA Dissertation submitted in partial fulfillment of the requirements for the degree of Master of Technology, Computer Engineering by Amol
Introduction to GPU hardware and to CUDA
Introduction to GPU hardware and to CUDA Philip Blakely Laboratory for Scientific Computing, University of Cambridge Philip Blakely (LSC) GPU introduction 1 / 37 Course outline Introduction to GPU hardware
Lecture 3: Modern GPUs A Hardware Perspective Mohamed Zahran (aka Z) [email protected] http://www.mzahran.com
CSCI-GA.3033-012 Graphics Processing Units (GPUs): Architecture and Programming Lecture 3: Modern GPUs A Hardware Perspective Mohamed Zahran (aka Z) [email protected] http://www.mzahran.com Modern GPU
HPC with Multicore and GPUs
HPC with Multicore and GPUs Stan Tomov Electrical Engineering and Computer Science Department University of Tennessee, Knoxville CS 594 Lecture Notes March 4, 2015 1/18 Outline! Introduction - Hardware
Graphics 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
Introduction to Numerical General Purpose GPU Computing with NVIDIA CUDA. Part 1: Hardware design and programming model
Introduction to Numerical General Purpose GPU Computing with NVIDIA CUDA Part 1: Hardware design and programming model Amin Safi Faculty of Mathematics, TU dortmund January 22, 2016 Table of Contents Set
The GPU Hardware and Software Model: The GPU is not a PRAM (but it s not far off)
The GPU Hardware and Software Model: The GPU is not a PRAM (but it s not far off) CS 223 Guest Lecture John Owens Electrical and Computer Engineering, UC Davis Credits This lecture is originally derived
OpenCL Optimization. San Jose 10/2/2009 Peng Wang, NVIDIA
OpenCL Optimization San Jose 10/2/2009 Peng Wang, NVIDIA Outline Overview The CUDA architecture Memory optimization Execution configuration optimization Instruction optimization Summary Overall Optimization
Programming 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.
Introduction to GPU Programming Languages
CSC 391/691: GPU Programming Fall 2011 Introduction to GPU Programming Languages Copyright 2011 Samuel S. Cho http://www.umiacs.umd.edu/ research/gpu/facilities.html Maryland CPU/GPU Cluster Infrastructure
CUDA SKILLS. Yu-Hang Tang. June 23-26, 2015 CSRC, Beijing
CUDA SKILLS Yu-Hang Tang June 23-26, 2015 CSRC, Beijing day1.pdf at /home/ytang/slides Referece solutions coming soon Online CUDA API documentation http://docs.nvidia.com/cuda/index.html Yu-Hang Tang @
Intro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1
Intro to GPU computing Spring 2015 Mark Silberstein, 048661, Technion 1 Serial vs. parallel program One instruction at a time Multiple instructions in parallel Spring 2015 Mark Silberstein, 048661, Technion
Lecture 1: an introduction to CUDA
Lecture 1: an introduction to CUDA Mike Giles [email protected] Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Overview hardware view software view CUDA programming
GPU Architectures. A CPU Perspective. Data Parallelism: What is it, and how to exploit it? Workload characteristics
GPU Architectures A CPU Perspective Derek Hower AMD Research 5/21/2013 Goals Data Parallelism: What is it, and how to exploit it? Workload characteristics Execution Models / GPU Architectures MIMD (SPMD),
IMAGE PROCESSING WITH CUDA
IMAGE PROCESSING WITH CUDA by Jia Tse Bachelor of Science, University of Nevada, Las Vegas 2006 A thesis submitted in partial fulfillment of the requirements for the Master of Science Degree in Computer
Introduction to CUDA C
Introduction to CUDA C What is CUDA? CUDA Architecture Expose general-purpose GPU computing as first-class capability Retain traditional DirectX/OpenGL graphics performance CUDA C Based on industry-standard
GPU Hardware and Programming Models. Jeremy Appleyard, September 2015
GPU Hardware and Programming Models Jeremy Appleyard, September 2015 A brief history of GPUs In this talk Hardware Overview Programming Models Ask questions at any point! 2 A Brief History of GPUs 3 Once
The Fastest, Most Efficient HPC Architecture Ever Built
Whitepaper NVIDIA s Next Generation TM CUDA Compute Architecture: TM Kepler GK110 The Fastest, Most Efficient HPC Architecture Ever Built V1.0 Table of Contents Kepler GK110 The Next Generation GPU Computing
Graphics and Computing GPUs
C A P P E N D I X Imagination is more important than knowledge. Albert Einstein On Science, 1930s Graphics and Computing GPUs John Nickolls Director of Architecture NVIDIA David Kirk Chief Scientist NVIDIA
GPGPU 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
CUDA programming on NVIDIA GPUs
p. 1/21 on NVIDIA GPUs Mike Giles [email protected] Oxford University Mathematical Institute Oxford-Man Institute for Quantitative Finance Oxford eresearch Centre p. 2/21 Overview hardware view
Introducing 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.
GPU Computing with CUDA Lecture 2 - CUDA Memories. Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile
GPU Computing with CUDA Lecture 2 - CUDA Memories Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile 1 Outline of lecture Recap of Lecture 1 Warp scheduling CUDA Memory hierarchy
GPU Hardware Performance. Fall 2015
Fall 2015 Atomic operations performs read-modify-write operations on shared or global memory no interference with other threads for 32-bit and 64-bit integers (c. c. 1.2), float addition (c. c. 2.0) using
E6895 Advanced Big Data Analytics Lecture 14:! NVIDIA GPU Examples and GPU on ios devices
E6895 Advanced Big Data Analytics Lecture 14: NVIDIA GPU Examples and GPU on ios devices Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science IBM Chief Scientist,
CUDA. Multicore machines
CUDA GPU vs Multicore computers Multicore machines Emphasize multiple full-blown processor cores, implementing the complete instruction set of the CPU The cores are out-of-order implying that they could
NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist
NVIDIA CUDA Software and GPU Parallel Computing Architecture David B. Kirk, Chief Scientist Outline Applications of GPU Computing CUDA Programming Model Overview Programming in CUDA The Basics How to Get
High Performance Cloud: a MapReduce and GPGPU Based Hybrid Approach
High Performance Cloud: a MapReduce and GPGPU Based Hybrid Approach Beniamino Di Martino, Antonio Esposito and Andrea Barbato Department of Industrial and Information Engineering Second University of Naples
Lecture 11: Multi-Core and GPU. Multithreading. Integration of multiple processor cores on a single chip.
Lecture 11: Multi-Core and GPU Multi-core computers Multithreading GPUs General Purpose GPUs Zebo Peng, IDA, LiTH 1 Multi-Core System Integration of multiple processor cores on a single chip. To provide
GPGPU Parallel Merge Sort Algorithm
GPGPU Parallel Merge Sort Algorithm Jim Kukunas and James Devine May 4, 2009 Abstract The increasingly high data throughput and computational power of today s Graphics Processing Units (GPUs), has led
Optimizing Parallel Reduction in CUDA. Mark Harris NVIDIA Developer Technology
Optimizing Parallel Reduction in CUDA Mark Harris NVIDIA Developer Technology Parallel Reduction Common and important data parallel primitive Easy to implement in CUDA Harder to get it right Serves as
CUDA Programming. Week 4. Shared memory and register
CUDA Programming Week 4. Shared memory and register Outline Shared memory and bank confliction Memory padding Register allocation Example of matrix-matrix multiplication Homework SHARED MEMORY AND BANK
Introduction to GPGPU. Tiziano Diamanti [email protected]
[email protected] 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
CUDA Debugging. GPGPU Workshop, August 2012. Sandra Wienke Center for Computing and Communication, RWTH Aachen University
CUDA Debugging GPGPU Workshop, August 2012 Sandra Wienke Center for Computing and Communication, RWTH Aachen University Nikolay Piskun, Chris Gottbrath Rogue Wave Software Rechen- und Kommunikationszentrum
Parallel Programming Survey
Christian Terboven 02.09.2014 / Aachen, Germany Stand: 26.08.2014 Version 2.3 IT Center der RWTH Aachen University Agenda Overview: Processor Microarchitecture Shared-Memory
OpenCL Programming for the CUDA Architecture. Version 2.3
OpenCL Programming for the CUDA Architecture Version 2.3 8/31/2009 In general, there are multiple ways of implementing a given algorithm in OpenCL and these multiple implementations can have vastly different
GPU Computing with CUDA Lecture 4 - Optimizations. Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile
GPU Computing with CUDA Lecture 4 - Optimizations Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile 1 Outline of lecture Recap of Lecture 3 Control flow Coalescing Latency hiding
L20: 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.
OpenACC Basics Directive-based GPGPU Programming
OpenACC Basics Directive-based GPGPU Programming Sandra Wienke, M.Sc. [email protected] Center for Computing and Communication RWTH Aachen University Rechen- und Kommunikationszentrum (RZ) PPCES,
GPGPUs, CUDA and OpenCL
GPGPUs, CUDA and OpenCL Timo Lilja January 21, 2010 Timo Lilja () GPGPUs, CUDA and OpenCL January 21, 2010 1 / 42 Course arrangements Course code: T-106.5800 Seminar on Software Techniques Credits: 3 Thursdays
GPU Computing. The GPU Advantage. To ExaScale and Beyond. The GPU is the Computer
GU Computing 1 2 3 The GU Advantage To ExaScale and Beyond The GU is the Computer The GU Advantage The GU Advantage A Tale of Two Machines Tianhe-1A at NSC Tianjin Tianhe-1A at NSC Tianjin The World s
Introduction 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
GPU System Architecture. Alan Gray EPCC The University of Edinburgh
GPU System Architecture EPCC The University of Edinburgh Outline Why do we want/need accelerators such as GPUs? GPU-CPU comparison Architectural reasons for GPU performance advantages GPU accelerated systems
CUDA Optimization with NVIDIA Tools. Julien Demouth, NVIDIA
CUDA Optimization with NVIDIA Tools Julien Demouth, NVIDIA What Will You Learn? An iterative method to optimize your GPU code A way to conduct that method with Nvidia Tools 2 What Does the Application
Parallel Image Processing with CUDA A case study with the Canny Edge Detection Filter
Parallel Image Processing with CUDA A case study with the Canny Edge Detection Filter Daniel Weingaertner Informatics Department Federal University of Paraná - Brazil Hochschule Regensburg 02.05.2011 Daniel
NVIDIA 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
Spatial BIM Queries: A Comparison between CPU and GPU based Approaches
Technische Universität München Faculty of Civil, Geo and Environmental Engineering Chair of Computational Modeling and Simulation Prof. Dr.-Ing. André Borrmann Spatial BIM Queries: A Comparison between
Computer 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
Guided Performance Analysis with the NVIDIA Visual Profiler
Guided Performance Analysis with the NVIDIA Visual Profiler Identifying Performance Opportunities NVIDIA Nsight Eclipse Edition (nsight) NVIDIA Visual Profiler (nvvp) nvprof command-line profiler Guided
Introduction to GPU Architecture
Introduction to GPU Architecture Ofer Rosenberg, PMTS SW, OpenCL Dev. Team AMD Based on From Shader Code to a Teraflop: How GPU Shader Cores Work, By Kayvon Fatahalian, Stanford University Content 1. Three
AMD GPU Architecture. OpenCL Tutorial, PPAM 2009. Dominik Behr September 13th, 2009
AMD GPU Architecture OpenCL Tutorial, PPAM 2009 Dominik Behr September 13th, 2009 Overview AMD GPU architecture How OpenCL maps on GPU and CPU How to optimize for AMD GPUs and CPUs in OpenCL 2 AMD GPU
Embedded Systems: map to FPGA, GPU, CPU?
Embedded Systems: map to FPGA, GPU, CPU? Jos van Eijndhoven [email protected] Bits&Chips Embedded systems Nov 7, 2013 # of transistors Moore s law versus Amdahl s law Computational Capacity Hardware
GPU Programming Strategies and Trends in GPU Computing
GPU Programming Strategies and Trends in GPU Computing André R. Brodtkorb 1 Trond R. Hagen 1,2 Martin L. Sætra 2 1 SINTEF, Dept. Appl. Math., P.O. Box 124, Blindern, NO-0314 Oslo, Norway 2 Center of Mathematics
GPUs for Scientific Computing
GPUs for Scientific Computing p. 1/16 GPUs for Scientific Computing Mike Giles [email protected] Oxford-Man Institute of Quantitative Finance Oxford University Mathematical Institute Oxford e-research
NVIDIA Tools For Profiling And Monitoring. David Goodwin
NVIDIA Tools For Profiling And Monitoring David Goodwin Outline CUDA Profiling and Monitoring Libraries Tools Technologies Directions CScADS Summer 2012 Workshop on Performance Tools for Extreme Scale
Introduction to GPU Computing
Matthis Hauschild Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Technische Aspekte Multimodaler Systeme December 4, 2014 M. Hauschild - 1 Table of Contents 1. Architecture
Applications 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
Texture Cache Approximation on GPUs
Texture Cache Approximation on GPUs Mark Sutherland Joshua San Miguel Natalie Enright Jerger {suther68,enright}@ece.utoronto.ca, [email protected] 1 Our Contribution GPU Core Cache Cache
Optimizing Application Performance with CUDA Profiling Tools
Optimizing Application Performance with CUDA Profiling Tools Why Profile? Application Code GPU Compute-Intensive Functions Rest of Sequential CPU Code CPU 100 s of cores 10,000 s of threads Great memory
NVIDIA CUDA. NVIDIA CUDA C Programming Guide. Version 4.2
NVIDIA CUDA NVIDIA CUDA C Programming Guide Version 4.2 4/16/2012 Changes from Version 4.1 Updated Chapter 4, Chapter 5, and Appendix F to include information on devices of compute capability 3.0. Replaced
GPU Tools Sandra Wienke
Sandra Wienke Center for Computing and Communication, RWTH Aachen University MATSE HPC Battle 2012/13 Rechen- und Kommunikationszentrum (RZ) Agenda IDE Eclipse Debugging (CUDA) TotalView Profiling (CUDA
Radeon 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
Evaluation of CUDA Fortran for the CFD code Strukti
Evaluation of CUDA Fortran for the CFD code Strukti Practical term report from Stephan Soller High performance computing center Stuttgart 1 Stuttgart Media University 2 High performance computing center
GPU Computing with CUDA Lecture 3 - Efficient Shared Memory Use. Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile
GPU Computing with CUDA Lecture 3 - Efficient Shared Memory Use Christopher Cooper Boston University August, 2011 UTFSM, Valparaíso, Chile 1 Outline of lecture Recap of Lecture 2 Shared memory in detail
PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)
PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon
Automatic CUDA Code Synthesis Framework for Multicore CPU and GPU architectures
Automatic CUDA Code Synthesis Framework for Multicore CPU and GPU architectures 1 Hanwoong Jung, and 2 Youngmin Yi, 1 Soonhoi Ha 1 School of EECS, Seoul National University, Seoul, Korea {jhw7884, sha}@iris.snu.ac.kr
~ Greetings from WSU CAPPLab ~
~ Greetings from WSU CAPPLab ~ Multicore with SMT/GPGPU provides the ultimate performance; at WSU CAPPLab, we can help! Dr. Abu Asaduzzaman, Assistant Professor and Director Wichita State University (WSU)
QCD as a Video Game?
QCD as a Video Game? Sándor D. Katz Eötvös University Budapest in collaboration with Győző Egri, Zoltán Fodor, Christian Hoelbling Dániel Nógrádi, Kálmán Szabó Outline 1. Introduction 2. GPU architecture
GPU Performance Analysis and Optimisation
GPU Performance Analysis and Optimisation Thomas Bradley, NVIDIA Corporation Outline What limits performance? Analysing performance: GPU profiling Exposing sufficient parallelism Optimising for Kepler
Stream 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
This Unit: Putting It All Together. CIS 501 Computer Architecture. Sources. What is Computer Architecture?
This Unit: Putting It All Together CIS 501 Computer Architecture Unit 11: Putting It All Together: Anatomy of the XBox 360 Game Console Slides originally developed by Amir Roth with contributions by Milo
Case Study on Productivity and Performance of GPGPUs
Case Study on Productivity and Performance of GPGPUs Sandra Wienke [email protected] ZKI Arbeitskreis Supercomputing April 2012 Rechen- und Kommunikationszentrum (RZ) RWTH GPU-Cluster 56 Nvidia
Introduction to Cloud Computing
Introduction to Cloud Computing Parallel Processing I 15 319, spring 2010 7 th Lecture, Feb 2 nd Majd F. Sakr Lecture Motivation Concurrency and why? Different flavors of parallel computing Get the basic
Real-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
ST810 Advanced Computing
ST810 Advanced Computing Lecture 17: Parallel computing part I Eric B. Laber Hua Zhou Department of Statistics North Carolina State University Mar 13, 2013 Outline computing Hardware computing overview
Advanced CUDA Webinar. Memory Optimizations
Advanced CUDA Webinar Memory Optimizations Outline Overview Hardware Memory Optimizations Data transfers between host and device Device memory optimizations Summary Measuring performance effective bandwidth
CudaDMA: Optimizing GPU Memory Bandwidth via Warp Specialization
CudaDMA: Optimizing GPU Memory Bandwidth via Warp Specialization Michael Bauer Stanford University [email protected] Henry Cook UC Berkeley [email protected] Brucek Khailany NVIDIA Research [email protected]
Parallel Firewalls on General-Purpose Graphics Processing Units
Parallel Firewalls on General-Purpose Graphics Processing Units Manoj Singh Gaur and Vijay Laxmi Kamal Chandra Reddy, Ankit Tharwani, Ch.Vamshi Krishna, Lakshminarayanan.V Department of Computer Engineering
Data Parallel Computing on Graphics Hardware. Ian Buck Stanford University
Data Parallel Computing on Graphics Hardware Ian Buck Stanford University Brook General purpose Streaming language DARPA Polymorphous Computing Architectures Stanford - Smart Memories UT Austin - TRIPS
OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC
OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC Driving industry innovation The goal of the OpenPOWER Foundation is to create an open ecosystem, using the POWER Architecture to share expertise,
ACCELERATING SELECT WHERE AND SELECT JOIN QUERIES ON A GPU
Computer Science 14 (2) 2013 http://dx.doi.org/10.7494/csci.2013.14.2.243 Marcin Pietroń Pawe l Russek Kazimierz Wiatr ACCELERATING SELECT WHERE AND SELECT JOIN QUERIES ON A GPU Abstract This paper presents
Amazon 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
Writing 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...
1. If we need to use each thread to calculate one output element of a vector addition, what would
Quiz questions Lecture 2: 1. If we need to use each thread to calculate one output element of a vector addition, what would be the expression for mapping the thread/block indices to data index: (A) i=threadidx.x
OpenACC 2.0 and the PGI Accelerator Compilers
OpenACC 2.0 and the PGI Accelerator Compilers Michael Wolfe The Portland Group [email protected] This presentation discusses the additions made to the OpenACC API in Version 2.0. I will also present
Image Processing & Video Algorithms with CUDA
Image Processing & Video Algorithms with CUDA Eric Young & Frank Jargstorff 8 NVIDIA Corporation. introduction Image processing is a natural fit for data parallel processing Pixels can be mapped directly
Towards Large-Scale Molecular Dynamics Simulations on Graphics Processors
Towards Large-Scale Molecular Dynamics Simulations on Graphics Processors Joe Davis, Sandeep Patel, and Michela Taufer University of Delaware Outline Introduction Introduction to GPU programming Why MD
OpenACC Programming on GPUs
OpenACC Programming on GPUs Directive-based GPGPU Programming Sandra Wienke, M.Sc. [email protected] Center for Computing and Communication RWTH Aachen University Rechen- und Kommunikationszentrum
Experiences on using GPU accelerators for data analysis in ROOT/RooFit
Experiences on using GPU accelerators for data analysis in ROOT/RooFit Sverre Jarp, Alfio Lazzaro, Julien Leduc, Yngve Sneen Lindal, Andrzej Nowak European Organization for Nuclear Research (CERN), Geneva,
