itcs 6/8010 cuda programming, unc-charlotte, b. wilkinson, jan 3, 2011outline.1 itcs 6010/8010...

Post on 13-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 3, 2011 outline.1

ITCS 6010/8010 Topics in Computer Science:GPU Programming for High Performance Computing

(CUDA programming)

Spring 2011

Barry WilkinsonDepartment of Computer Science

University of North Carolina at Charlotte

Tuesday/Thursday 5:00 pm – 6:15 pmWoodward 154

Course• This course is concerned with using

Graphics Processing Units (GPUs) for high performance computing

(not graphics)

• If you thought it was on graphics, now is the time to drop the course!

outline.2

outline.3

http://www.nvidia.com/object/cuda_courses_and_map.html

Now a hot topic.

Taught at Illinois, Stanford, MIT, Harvard, Duke, Chapel Hill, UNCC, …

4

Last few years GPUs have developed from graphics cards into a platform for high performance computing (HPC)

Now great interest in using GPUs for scientific high performance computing and GPUs are being designed with that application in mind

Graphics Processing Units (GPUs)

5 http://www.hpcwire.com/blogs/New-China-GPGPU-Super-Outruns-Jaguar-105987389.html

outline.6

Prerequisites

C/C++ programming -- Most programming is in C.

This course is concerned with programming computers, servers and clusters that have GPUs support – both Windows and Linux although most work is likely to be done on Linux systems

outline.7

Course Text

CUDA by ExampleAn Introduction to General-Purpose GPU Programming

by Jason Sanders and Edwards Kandrot

Addison-Wesley, 2011.

Most materials needed for the course, however, can be found on-line, see course home page

outline.8

Home Pages

For course notes, assignments, announcements, etc.:

http://www.cs.uncc.edu/~abw/ITCS6010S11/

Please check before each class.

• History of GPUs leading to their use and design for HPC• Introduction to the GPU programming model and CUDA,

device memory• Basic CUDA program structure, kernel calls, threads,

blocks, grid, thread addressing, predefined variables, example code: matrix addition and multiplication (demos). Assignment 1 using Windows and Linux environments to compile and execute simple CUDA programs. Visual Studio, Linux make files

• More program demostrations illustrating various features, CUDA API, timing, synchronization, atomics, ...

• Monte Carlo programs, Illustration of CUDA random number generator and __device__ routines

outline.9

Course Contents

• Incorporating graphical output.  Demo: N-body problem using X11 graphics and __synchthreads() routine

• Global barrier synchronization. Demo of heat distribution program

• Critical sections and atomics.  Demo: counter and histogram programs

• Parallel sorting.  Comparison of various algorithms suitable for GPUs. Demo of Ranksort.

outline.10

Course contents continued

• More advanced features of CUDA, streams, multiple GPUs, using shared memory, constant memory, coalesced global memory access

• Optimizing performance, using knowledge of warps, and other characteristics of GPUs, overlapping computations, effects of control, flow, ...,

• Building complex applications, debugging tools, ... • OpenCL• Hybrid programming incorporating OpenMP and/or MPI

with CUDA, GPU clusters, distributed clusters, ...

outline.11

Course contents continued

• It is expected to take roughly seven weeks to cover te material listed, interspersed with demos and assignments.

• The remaining time will be spent on considering applications and the course project. 

outline.12

Course contents continued

outline.13

Assessment

• Class quizzes/tests (2) 20%• Smaller programming assignments (3) 30%• Course project 30%• Final exam

20% » The assessment and percentages may be modified.Read small print

outline.14

All submitted assignments must be your own work. Copied work or work done by more than one person (unless specifically instructed) will not be accepted - at the very minimum, zero credit.

The UNC-C Code of Student Academic Integrity applies to both assignments and quizzes/tests.

No work will be accepted after the due date without good reason.

outline.15

AttendanceAttendance is expected. Attendance will be recorded. If you miss classes, it can have a deleterious effect on your grade:

After 4 missed classes without good reason:

2 marks off overall accumulated marks (out of 100) for each additional class missed.

If you must miss class, see me beforehand to avoid losing marks.

outline.16

InstructorBarry Wilkinson

Woodward, room 435G

Email: abw@uncc.edu

Office HoursTuesday/Thursday

2:00 pm - 4:30 pm.Walk-in at other times ok if not busy,

or send me an email for a mutually convenient time.

top related