ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 3, 2011outline.1 ITCS 6010/8010 Topics in Computer Science: GPU Programming for High Performance.

Slides:



Advertisements
Similar presentations
ITCS 3181 Logic and Computer Systems
Advertisements

CS 46101–600/CS Design and Analysis of Algorithms Dr. Angela Guercio Spring 2010.
ITCS 3181 Logic and Computer Systems
1 Course Information Parallel Computing Spring 2010.
L13: Review for Midterm. Administrative Project proposals due Friday at 5PM (hard deadline) No makeup class Friday! March 23, Guest Lecture Austin Robison,
CS/CMPE 524 – High- Performance Computing Outline.
AssignPrelim1.1 ITCS 4146/5146 Grid Computing, 2007, UNC-Charlotte, B. Wilkinson. Jan 13, 2007 Course Preliminaries.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
Statistical Methods in Computer Science Course Introduction Ido Dagan.
1 Teaching Grid Computing across North Carolina and Beyond Dr. Clayton Ferner University of North Carolina Wilmington Dr. Barry Wilkinson University of.
CS 524 – High- Performance Computing Outline. CS High-Performance Computing (Wi 2003/2004) - Asim LUMS2 Description (1) Introduction to.
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
Math 115a– Section 4  Instructor: Kerima Ratnayaka   Phone :  Office : MTL 124B.
Outline.1 Grid Computing Spring 2007 Tuesday/Thursday 11:00 am - 12:15 pm Instructors Dr. Barry Wilkinson University of North Carolina, Charlotte and Dr.
CS 732: Advance Machine Learning Usman Roshan Department of Computer Science NJIT.
Outline.1 Grid Computing Spring 2010 Tuesday/Thursday 11:00 am - 12:15 pm Instructors © 2010 B. Wilkinson/Clayton Ferner. Modification date: Dec 20, 2009.
5-Year BA/BS-MS Degree Program Department of Computer Science University of North Carolina Charlotte Dr. Barry Wilkinson Computer Science MS Program Director.
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
Shekoofeh Azizi Spring  CUDA is a parallel computing platform and programming model invented by NVIDIA  With CUDA, you can send C, C++ and Fortran.
Jawwad A Shamsi Nouman Durrani Nadeem Kafi Systems Research Laboratories, FAST National University of Computer and Emerging Sciences, Karachi Novelties.
ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 22, 2011assignprelim.1 Assignment Preliminaries ITCS 6010/8010 Spring 2011.
Course Introduction CS 2302 SPRING Course Introduction In this part we'll discuss course mechanics. Most of this will apply to all sections of the.
2012/06/22 Contents  GPU (Graphic Processing Unit)  CUDA Programming  Target: Clustering with Kmeans  How to use.
(1) ECE 8823: GPU Architectures Sudhakar Yalamanchili School of Electrical and Computer Engineering Georgia Institute of Technology NVIDIA Keplar.
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
Course name : computer essentials. Instructor: Basma Alabdullatif Office: computer department instructors office, 1st floor Office hours: Saturday (11:00-01:00)
CPS120: Introduction to Computer Science Fall: 2002 Instructor: Paul J. Millis.
CIS4930/CDA5125 Parallel and Distributed Systems Florida State University CIS4930/CDA5125: Parallel and Distributed Systems Instructor: Xin Yuan, 168 Love,
ITCS 4/5145 Cluster Computing, UNC-Charlotte, B. Wilkinson, 2006outline.1 ITCS 4145/5145 Parallel Programming (Cluster Computing) Fall 2006 Barry Wilkinson.
CUDA Programming continued ITCS 4145/5145 Nov 24, 2010 © Barry Wilkinson CUDA-3.
General Purpose Computing on Graphics Processing Units: Optimization Strategy Henry Au Space and Naval Warfare Center Pacific 09/12/12.
1 Object Oriented Design COP 3331 Spring 2011 MWF 11:50 AM – 12:40 PM CHE 103 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering ENB.
1 Software Systems Development CEN Spring 2011 TR 12:30 PM – 1:45 PM ENB 116 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering.
Introduction to Data Structures
1 CSCI 3120: Operating Systems Summer 2003 Instructor: Kirstie Hawkey Office hours (outside Room 311): Mon: 2:30-3:30, Fri: 10:30-11:30.
CPS120: Introduction to Computer Science Winter 2002 Instructor: Paul J. Millis.
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.
CUDA - 2.
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Outline.1 Grid Computing Fall 2008 Tuesday/Thursday 11:00 am - 12:15 pm Instructors Grid Computing, B. Wilkinson, 2008 Aug Dr. Clayton Ferner.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 25, 2011 Synchronization.ppt Synchronization These notes will introduce: Ways to achieve.
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson, Dec 26, 2012outline.1 ITCS 4145/5145 Parallel Programming Spring 2013 Barry Wilkinson Department.
EECS 583 – Class 21 Research Topic 3: Compilation for GPUs University of Michigan December 12, 2011 – Last Class!!
1 Workshop 9: General purpose computing using GPUs: Developing a hands-on undergraduate course on CUDA programming SIGCSE The 42 nd ACM Technical.
COP4610/CGS5765 Operating Systems Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: W M F 9:10am – 10:00am, or by appointments.
Synchronization These notes introduce:
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
CS151 Introduction to Digital Design Noura Alhakbani Prince Sultan University, College for Women.
CS 732: Advance Machine Learning
UNX122 UNX122_022_w1_p1 Operating Systems - Unix Instructor: DAVID WARD.
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
Math 115a Section 2(Summer 05)  Instructor: Kerima Ratnayaka   Phone :  Office.
Administrative Preliminaries Computer Architecture.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
CSC4320/6320 Operating Systems.  Instructor: Xiaolin Hu   Phone:  Office: 25 Park Place Building,
CMPT 238 Data Structures Instructor: Tina Tian. General Information Office: RLC 203A Office Hour: Tue and Fri 12:30 - 2:00PM.
Constructing a system with multiple computers or processors 1 ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson. Jan 13, 2016.
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
ITCS 4145 Parallel Computing Spring 2016
CMPT 201 Computer Science II for Engineers
Dr. Barry Wilkinson © B. Wilkinson Modification date: Jan 9a, 2014
Dr. Barry Wilkinson University of North Carolina Charlotte
Dr. Barry Wilkinson University of North Carolina Charlotte
Dr. Barry Wilkinson University of North Carolina Charlotte
ECE 8823: GPU Architectures
CIS5930: Advanced Topics in Parallel and Distributed Systems
Introduction Andrew Whitaker
6- General Purpose GPU Programming
Presentation transcript:

ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 3, 2011outline.1 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 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 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

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 Example An Introduction to General-Purpose GPU Programming by Jason Sanders and Edwards Kandrot Addison-Wesley, 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.: / 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 project30% 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 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.16 Instructor Barry Wilkinson Woodward, room 435G Office Hours Tuesday/Thursday 2:00 pm - 4:30 pm. Walk-in at other times ok if not busy, or send me an for a mutually convenient time.