Outline - Personal Web Pages - University of North Carolina at

advertisement
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
ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson Dec 24, 2012
outline.1
Outline
These slides constitute the course
outline and include the course syllabus
and course policies.
outline.2
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
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, …
outline.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
Fastest computer
systems in the world
NVIDIA has just
In the last few
years, GPUs have donated a 2496moved from simply core K20 GPU.
Not yet ready
supporting
for class to use.
graphics to being
designed and used
for high
performance
We will be using two
computing.
servers with NVIDIA
Many if not most
high performance
clusters use GPUs
448-core 2050
GPUs (one 2050
donated by NVIDIA)
http://top500.org/
6
UNCC cluster used for assignments
coit-grid01.uncc.edu – coit-grid7.uncc.edu
Login from on-campus or off-campus
coitgrid01
coitgrid02
coitgrid03
coit-grid01-4:
Each two Xeon
processors
(3.4Ghz) 8GB
main memory
switch
coit-grid05: Dell R900,
four quad-core Xeon
processors (2.93Ghz)
64GB main memory
1.2 TB disk
coitgrid05
coitgrid04
Login from
within the
campus only
coitgrid07
coitgrid06
NVIDIA Tesla
GPU
NVIDIA Tesla
GPU
(448 core Fermi)
(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,
All user’s home directories on
coit-grid05 (NFS)
GPU servers grid06 and grid07 for HPC GPU programming
Can also use Windows lab machines if have NVIDIA cards and software.
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.
outline.8
Course Textbook: No required course textbook.
Supporting Textbook:
CUDA by Example
An Introduction to GeneralPurpose GPU Programming
by Jason Sanders and
Edwards Kandrot
Addison-Wesley, 2011.
However, most materials needed for the course can be
found on-line, see course home page
outline.9
Home Pages
For course notes, assignments, announcements, etc.:
http://www.cs.uncc.edu/~abw/ITCS4010S13/
Please check before each class.
outline.10
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).
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 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, ...
• Hybrid programming incorporating OpenMP and/or MPI
with CUDA, ...
• OpenCL, …
• OpenACC
outline.12
Course contents continued
• 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 Grade
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.
outline.14
Assessment
•
•
•
•
Class quizzes/tests (2)
Smaller programming assignments (3)
Course project
Final exam
»
20%
30%
30%
20%
The assessment and percentages may be modified.
Read small print
outline.15
Graduate students
There will be additional work in the assignments
for graduate students, which will be extra credit for
undergraduates.
outline.16
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.
outline.17
Due dates for assignments
Will be posted on home page with assignment.
Assignments can be turned in late but with a
penalty.
Late
< 24 hours
> 24 hours and < 48 hours
> 48 hours and < 72 hours
> 72 hours
Penalty
10%
20%
30%
100%
outline.18
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.
outline.19
Mid-Term Unsatisfactory Grades
• UNC-C requires midterm unsatisfactory grades to
be submitted by the end of the 8th 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
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.
outline.21
Download