GP2 General Purpose Computation using Graphics Processors Dinesh Manocha Avneesh Sud Lecture 2 January 17 2006 http gamma cs unc edu GPGP Spring 2007 Department of Computer Science UNC Chapel Hill The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Class Schedule Current Time Slot 2 00 3 15pm Mon Wed SN011 Office hours TBD Class mailing list gpgp cs unc edu should be up and running GPGP The GPU on commodity video cards has evolved into an extremely flexible and powerful processor Programmability Precision Power This course will address how to harness that power for general purpose computation non rasterization Algorithmic issues Programming and systems Applications Capabilities of Current GPUs Modern GPUs are deeply programmable Programmable pixel vertex video engines Solidifying high level language support Modern GPUs support 32 bit floating point precision Great development in the last few years 64 bit arithmetic may be coming soon Almost IEEE FP compliant The Potential of GPGP The power and flexibility of GPUs makes them an attractive platform for general purpose computation Example applications range from in game physics simulation geometric applications to conventional computational science available to developers as a sort of computational coprocessor Check out http www gpgpu org Goal make the inexpensive power of the GPU GPGP Challenges GPUs designed for and driven by video games Programming model is unusual tied to computer graphics Programming environment is tightly constrained Underlying architectures are Inherently parallel Rapidly evolving even in basic feature set Largely secret No clear standards besides DirectX imposed by MSFT Can t simply port code written for the CPU Is there a formal class of problems that can be solved using current GPUs Importance of Data Parallelism GPUs are designed for graphics or gaming industry Highly parallel tasks GPUs process independent vertices fragments Temporary registers are zeroed No shared or static data No read modify write buffers Data parallel processing GPUs architecture is ALU heavy Multiple vertex pixel pipelines multiple ALUs per pipe Hide memory latency with more computation Goals of this Course computing on graphics hardware A detailed introduction to general purpose Emphasis includes Core computational building blocks Strategies and tools for programming GPUs Cover many applications and explore new applications Highlight major research issues Course Organization Survey lectures Instructors other faculty senior graduate students Breadth and depth coverage Student presentations Course Contents Overview of GPUs architecture and features Models of computation for GPU based algorithms System issues Cache and data management Languages and compilers Numerical and Scientific Computations Linear algebra computations Optimization FFTrigid body simulation fluid dynamics Geometric computations Proximity computations distance fields motion planning and navigation Database computations database queries predicates booleans aggregates streaming databases and data mining sorting searching GPU Clusters Parallel computing environments for GPUs Rendering Ray tracing photon mapping Shadows Student Load Stay awake in classes One class lecture Read a lot of papers 1 2 small assignments Student Load Stay awake in classes One class lecture Read a lot of papers 1 2 small assignments A MAJOR COURSE PROJECT WITH RESEARCH COMPONENT Course Projects Work by yourself or part of a small team Develop new algorithms for simulation geometric problems database computations hacking scientific computation programming trends Formal model for GPU algorithms or GPU Issues in developing GPU clusters for Look into new architecture and parallel Course Projects Importance If you are planning to take this course for credit start thinking about the course project ASAP It is important that your project has some novelty to it Shouldn t be just a GPU hack You need to work on a problem or application for which GPUs are a good candidate For example GPUs are not a good solution for many problems It is ok to work in groups of 2 or 3 for a large project Periodic milestones to monitor the progress Project proposals due by February 10 Monthly progress reports will count towards the final grade Course Projects Possible Topics We are also interested in comparing GPU capabilities with other emerging architectures e g Cell multi core other data parallel processors Numerical computations Some of the prime candidates for GPU acceleration Sparse matrix computations Numerical linear algebra SVD QR computations Applications like WWW search Power efficiency of GPU algorithms Programming environments of GPUs talk to Jan Prins GPU Clusters and high performance computing using GPUs Data mining algorithms talk to Wei Wang or Jan Prins Scientific computations possible collaboration with RENCI Physically based simulation e g fluid simulation talk to Ming Lin Others Course Topics Lectures Focus on Breadth Quite a few guest and student lectures Jan 22 Overview of OpenGL and GPU Programming Wendt on Cell processor Stephen Olivier on Jan 24 NVIDIA G80 Architecture Steve Molnar Jan 29 CUDA Programming Environment Lars Nyland Jan 31 Lectures on CTM ATI Heterogeneous Computing Systems GPUs 0920 2005 Manocha The UNIVERSITY OF NORTH CAROLINA at CHAPEL HILL 17 What are Heterogeneous Computing Systems Develop computer systems and applications that are scalable from a system with a single homogeneous processor to a high end computing platform with tens or even hundreds of thousands of heterogeneous processors 0920 2005 Manocha The UNIVERSITY OF NORTH CAROLINA at CHAPEL HILL 18 What are Heterogeneous Computing Systems Heterogeneous computing systems are those with a range of diverse computing resources that can be local to one another or geographically distributed The pervasive use of networks and the internet by all segments of modern society means that the number of connected computing resources is growing tremendously From International Workshop on Heterogeneous Computing from early 1990 s 0920 2005 Manocha The UNIVERSITY OF NORTH CAROLINA at CHAPEL HILL 19 Computing using Accelerators GPU is one type of accelerator commodity and easily available Other accelerators Cell processor Clearspeed 0920 2005 Manocha The UNIVERSITY OF NORTH CAROLINA at CHAPEL HILL 20 Organization Current architectures Use of Accelerators Programming environments for accelerators 0920 2005 Manocha The UNIVERSITY OF NORTH CAROLINA
View Full Document