Presentation is loading. Please wait.

Presentation is loading. Please wait.

ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson Dec 24, 2012outline.1 ITCS 4010/5010 Topics in Computer Science: GPU Programming for High Performance.

Similar presentations


Presentation on theme: "ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson Dec 24, 2012outline.1 ITCS 4010/5010 Topics in Computer Science: GPU Programming for High Performance."— Presentation transcript:

1 ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson Dec 24, 2012outline.1 ITCS 4010/5010 Topics in Computer Science: GPU Programming for High Performance Computing (CUDA programming) Spring 2013 Barry Wilkinson Department of Computer Science University of North Carolina at Charlotte Tuesday/Thursday 5:00 pm – 6:15 pm Woodward 130

2 outline.2 Outline These slides constitute the course outline and include the course syllabus and course policies.

3 Course This course is concerned with using Graphics Processing Units (GPUs) for high performance computing (not graphics although we may create graphical output as well) If you thought it was a course specifically on graphics, now is the time to drop the course! outline.3

4 outline.4 http://www.nvidia.com/object/cuda_courses_and_map.html Now a hot topic. Taught at Illinois, Stanford, MIT, Harvard, Duke, Chapel Hill, UNC-C, …

5 5 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)

6 6 In the last few years, GPUs have moved from simply supporting graphics to being designed and used for high performance computing. Many if not most high performance clusters use GPUs Fastest computer systems in the world NVIDIA has just donated a 2496- core K20 GPU. Not yet ready for class to use. http://top500.org/ We will be using two servers with NVIDIA 448-core 2050 GPUs (one 2050 donated by NVIDIA)

7 coit-grid01-4: Each two Xeon processors (3.4Ghz) 8GB main memory coit-grid05: Dell R900, four quad-core Xeon processors (2.93Ghz) 64GB main memory 1.2 TB disk coit- grid01 switch coit- grid05 coit- grid03 coit- grid02 coit- grid04 All user’s home directories on coit-grid05 (NFS) UNCC cluster used for assignments coit-grid01.uncc.edu – coit-grid7.uncc.edu coit- grid06 NVIDIA Tesla GPU (448 core Fermi) Login from within the campus only Login from on-campus or off-campus coit- grid07 NVIDIA Tesla GPU (448 core Fermi) coit-grid07: GPU server, X5560 2.8GHz quad-core Xeon processor with NVIDIA 2050 GPU, 12GB main memory coit-grid06: GPU server with NVIDIA 2050 GPU, GPU servers grid06 and grid07 for HPC GPU programming Can also use Windows lab machines if have NVIDIA cards and software.

8 outline.8 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

9 outline.9 Course Textbook: No required course textbook. However, most materials needed for the course can be found on-line, see course home page Supporting Textbook: CUDA by Example An Introduction to General- Purpose GPU Programming by Jason Sanders and Edwards Kandrot Addison-Wesley, 2011.

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

11 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). Using Windows and Linux environments to compile and execute simple CUDA programs. Incorporating graphical output (X11 graphics) Timing Device variables and routines Synchronization Critical sections, atomics,... outline.11 Course Contents

12 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,... Hybrid programming incorporating OpenMP and/or MPI with CUDA,... OpenCL, … OpenACC outline.12 Course contents continued

13 It is expected to take roughly seven weeks to cover the formal material listed, interspersed with demos and assignments. The remaining time will be spent on considering applications and the course project. outline.13 Course contents continued

14 Course Grade outline.14 Letter grades will be assigned according to the following scales: Undergraduate Grade Scale A 90 - 100 B 80 - 89.99 C 70 - 79.99 D 60 - 69.99 F 0 - 59.99 Graduate Grade Scale A 90 - 100 B 80 - 89.99 C 70 - 79.99 U 0 - 69.99 worst case, and may be curved according to the performance of the entire class. So, if you are above average in the class, your grade will be above average and similarly if you are below average, the grade will be below average. For each assignment or test, the class average will be announced after grading so you can see where you stand in the class.

15 outline.15 Assessment Class quizzes/tests (2)20% Smaller programming assignments (3)30% Course project30% Final exam 20% »The assessment and percentages may be modified. Read small print

16 outline.16 Graduate students There will be additional work in the assignments for graduate students, which will be extra credit for undergraduates.

17 outline.17 Code of Student Academic Integrity 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 - and may be subject to disciplinary action. The Code of Student Academic Integrity applies to both assignments and quizzes/tests.

18 Due dates for assignments Will be posted on home page with assignment. Assignments can be turned in late but with a penalty. Late Penalty < 24 hours10% > 24 hours and < 48 hours20% > 48 hours and < 72 hours30% > 72 hours100% outline.18

19 outline.19 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.

20 Mid-Term Unsatisfactory Grades UNC-C requires midterm unsatisfactory grades to be submitted by the end of the 8 th week of class. Mid term grades –Undergraduates: Satisfactory or D or F –Graduates: Satisfactory or C or U will be based upon all work graded by week 7, which probably will be two assignments and one class test. outline.20

21 outline.21 Instructor Barry Wilkinson Woodward, room 435G Email: abw@uncc.edu Office Hours Tuesday/Thursday 3:00 pm - 4:30 pm. Walk-in at other times ok if not busy, or send me an email for a mutually convenient time.


Download ppt "ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson Dec 24, 2012outline.1 ITCS 4010/5010 Topics in Computer Science: GPU Programming for High Performance."

Similar presentations


Ads by Google