Bardia Bandali CEG 4131 Fall 2012 General Purpose
Bardia Bandali CEG 4131 – Fall 2012 General Purpose Computing on GPU GPGPU CEG 4131 – Fall 2012 University of Ottawa CEG 4131 -Fall 2012 1
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU - History - Open. CL Board - Open. CL Overview - Open. CL Examples - AMD Open. CL Tools CEG 4131 -Fall 2012 2
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 3
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 4
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 5
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 6
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 7
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 8
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 9
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 10
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 11
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU AMD Accelerated Parallel Processing Open. CL July 2012 CEG 4131 -Fall 2012 12
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 13
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU Sothern Islands Memory Hierarchy AMD Southern Islands Instruction Set Architecture, Aug 2012 CEG 4131 -Fall 2012 14
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 15
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 16
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU AMD Accelerated Parallel Processing Open. CL July 2012 CEG 4131 -Fall 2012 17
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 18
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU AMD Accelerated Parallel Processing Open. CL July 2012 CEG 4131 -Fall 2012 19
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 20
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 21
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 22
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 23
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 24
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 25
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 26
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 27
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 28
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 29
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 30
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 31
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 32
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 33
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU Kernel Functions Restrictions: • • • Arguments to kernel functions that are pointers must use the global, constant, or local qualifier. An argument to a kernel function cannot be declared as a pointer to a pointer(s). Arguments to kernel functions cannot be declared with the following built-in types: bool, half, size_t, ptrdiff_t, intptr_t, uintptr_t, or event_t. The return type for a kernel function must be void. Arguments to kernel functions that are declared to be a struct cannot pass Open. CL objects (such as buffers, images) as elements of the struct. Bit field struct members are not supported. Variable-length arrays and structures with flexible (or unsized) arrays are not supported. Variadic macros and functions are not supported. The extern, static, auto, and register storage class specifiers are not supported. Predefined identifiers such as __func__ are not supported. The library functions defined in the C 99 standard headers—assert. h, ctype. h, complex. h, errno. h, fenv. h, float. h, inttypes. h, limits. h, locale. h, setjmp. h, signal. h, stdarg. h, stdio. h, stdlib. h, string. h, tgmath. h, time. h, wchar. h, and wctype. h—are not available and cannot be included by a program. CEG 4131 -Fall 2012 34
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 35
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 36
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 37
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 38
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU AMD Accelerated Parallel Processing Open. CL July 2012 CEG 4131 -Fall 2012 39
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 40
Introduction History Open. CL Board Open. CL Overview Open. CL Examples General Purpose Computing on GPU AMD Accelerated Parallel Processing Open. CL July 2012 CEG 4131 -Fall 2012 41
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 42
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 43
Introduction History Open. CL Board Open. CL Overview Open. CL Examples CEG 4131 -Fall 2012 General Purpose Computing on GPU 44
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU Numerical Reduction Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 45
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 46
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU Matrix Transpose Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 47
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU Matrix Transpose Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 48
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU AMD APP Profiler Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 49
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU AMD APP Profiler Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 50
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU AMD APP Profiler Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 51
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU AMD APP Kernel. Analyzer Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 52
History Open. CL Board Open. CL Overview Open. CL Examples AMD Open. CL Tools General Purpose Computing on GPU AMD APP g. DEBugger Open. CL In Action (Matthew Scarpino 2012) CEG 4131 -Fall 2012 53
General Purpose Computing on GPU References: • • • [1] AMD Accelerated Parallel Processing Open. CL Programming Guide, July 2012. [2] AMD Southern Islands Instruction Set Architecture, Aug 2012. [3] O. Rosenberg, Open. CL 1. 2 Overview, KHRONOS Group, Nov 2011. [4] Introduction to Open. CL Programming, AMD Fusion, May 2010. [5] M. Scarpino, Open. CL In Action, Manning Publishing ltd 2012. [6] AMD Developer Central: developer. amd. com CEG 4131 -Fall 2012 54
- Slides: 54