1 / 16

Course

ITCS 6010/8010 Topics in Computer Science: GPU Programming for High Performance Computing (CUDA programming) Spring 2011 Barry Wilkinson Department of Computer Science University of North Carolina at Charlotte Tuesday/Thursday 5:00 pm – 6:15 pm Woodward 154 . Course.

minna
Download Presentation

Course

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ITCS 6010/8010 Topics in Computer Science:GPU Programming for High Performance Computing (CUDA programming)Spring 2011Barry WilkinsonDepartment of Computer ScienceUniversity of North Carolina at CharlotteTuesday/Thursday 5:00 pm – 6:15 pmWoodward 154 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 3, 2011

  2. 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!

  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. Graphics Processing Units (GPUs) 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

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

  6. 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 Prerequisites C/C++ programming -- Most programming is in C.

  7. Course Text CUDA by Example An 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

  8. Home Pages For course notes, assignments, announcements, etc.: http://www.cs.uncc.edu/~abw/ITCS6010S11/ Please check before each class.

  9. Course Contents • 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

  10. Course contents continued • 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.

  11. 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, ...

  12. 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.

  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

  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.

  15. Attendance Attendance 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.

  16. Instructor Barry Wilkinson Woodward, room 435G Email: abw@uncc.edu Office Hours Tuesday/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.

More Related