CS179: GPU Programming Lecture 16: Final Project Discussion.

Slides:



Advertisements
Similar presentations
Lecture 1: Introduction
Advertisements

Useful tricks in studying reading papers doing research writing papers publishing papers English e-manuscripts.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
An Effective GPU Implementation of Breadth-First Search Lijuan Luo, Martin Wong and Wen-mei Hwu Department of Electrical and Computer Engineering, UIUC.
CSc 227 Summer Beginning 3-June-2013 Rick Mercer and Lane Simons.
ECE 562 Computer Architecture and Design Project: Improving Feature Extraction Using SIFT on GPU Rodrigo Savage, Wo-Tak Wu.
1 Welcome to Advanced programming in Java Summer course 2005 introduction.
Programming with CUDA WS 08/09 Lecture 12 Tue, 02 Dec, 2008.
CS 179: GPU Computing Lecture 2: The Basics. Recap Can use GPU to solve highly parallelizable problems – Performance benefits vs. CPU Straightforward.
L13: Review for Midterm. Administrative Project proposals due Friday at 5PM (hard deadline) No makeup class Friday! March 23, Guest Lecture Austin Robison,
CS 106 Introduction to Computer Science I 03 / 03 / 2008 Instructor: Michael Eckmann.
CS 106 Introduction to Computer Science I 03 / 08 / 2010 Instructor: Michael Eckmann.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Fluid Simulation using CUDA Thomas Wambold CS680: GPU Program Optimization August 31, 2011.
SE 313 – Computer Graphics and Visual Programming Lecture 5: Geometric Transformations Lecturer: Gazihan Alankuş Please look at the last slides for assignments.
2012/06/22 Contents  GPU (Graphic Processing Unit)  CUDA Programming  Target: Clustering with Kmeans  How to use.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
CuMAPz: A Tool to Analyze Memory Access Patterns in CUDA
(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.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Project 1  Problem  Work plan  Guidelines  Deliverables  Report.
Introduction to CUDA 1 of 2 Patrick Cozzi University of Pennsylvania CIS Fall 2012.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/ Introduction Lecture 01: Introduction COMP 175: Computer Graphics January 15, 2015.
COMP 232 Intro Lecture. Introduction to Course Me – Dr. John Sigle Purpose/goals of the course Purpose/goals Prerequisites - COMP 132 (Java skill & Eclipse)
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.
CS179: GPU Programming Lecture 11: Lab 5 Recitation.
Bits & Bytes Created by Chris McAbee For AAMU AGB199 Extra Credit Created from information copied and pasted from
GPU Programming and Architecture: Course Overview Patrick Cozzi University of Pennsylvania CIS Spring 2012.
GPU Architectural Considerations for Cellular Automata Programming A comparison of performance between a x86 CPU and nVidia Graphics Card Stephen Orchowski,
GPU Architecture and Programming
고급 컴퓨터 그래픽스 중앙대학교 컴퓨터공학부 손 봉 수. Course Overview Level : CSE graduate course No required text. We will use lecture notes and on-line materials This course.
1 CS Tutorial 5 Frid. Oct 23, 2009 Design Document Tutorial.
GPU Programming and Architecture: Course Overview Patrick Cozzi University of Pennsylvania CIS Fall 2012.
Lecture 23: November 30, 2011 Creative Ideas Enabled by Computer Science CS 104 – Fall 2011 Exploring Computer Science.
CSS 700: MASS CUDA Parallel‐Computing Library for Multi‐Agent Spatial Simulation Fall Quarter 2014 Nathaniel Hart UW Bothell Computing & Software Systems.
GPUs: Overview of Architecture and Programming Options Lee Barford firstname dot lastname at gmail dot com.
CS6963 L18: Global Synchronization and Sorting. L18: Synchronization and Sorting 2 CS6963 Administrative Grading -Should have exams. Nice job! -Design.
CS 106 Introduction to Computer Science I 03 / 02 / 2007 Instructor: Michael Eckmann.
University of Michigan Electrical Engineering and Computer Science Adaptive Input-aware Compilation for Graphics Engines Mehrzad Samadi 1, Amir Hormati.
CS 732: Advance Machine Learning
Data Structures and Algorithms in Java AlaaEddin 2012.
AUTO-GC: Automatic Translation of Data Mining Applications to GPU Clusters Wenjing Ma Gagan Agrawal The Ohio State University.
Heterogeneous Computing With GPGPUs Matthew Piehl Overview Introduction to CUDA Project Overview Issues faced nvcc Implementation Performance Metrics Conclusions.
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
Programming with CUDA WS 08/09 Lecture 2 Tue, 28 Oct, 2008.
S. Pardi Frascati, 2012 March GPGPU Evaluation – First experiences in Napoli Silvio Pardi.
1 Computer Science 1021 Programming in Java Geoff Draper University of Utah.
CS 179: GPU Computing LECTURE 2: MORE BASICS. Recap Can use GPU to solve highly parallelizable problems Straightforward extension to C++ ◦Separate CUDA.
Lecture 3 CUDA Programming 1
CS 179: GPU Programming Lecture 1: Introduction 1
Our Graphics Environment
CS427 Multicore Architecture and Parallel Computing
CS 179: GPU Programming Lecture 1: Introduction 1
CS 179: GPU Programming Lecture 1: Introduction 1
Lecture 2: Intro to the simd lifestyle and GPU internals
Lecture 5: GPU Compute Architecture
Waves!.
CSCI1600: Embedded and Real Time Software
Lecture 5: GPU Compute Architecture for the last time
CS 179 Project Intro.
NVIDIA Fermi Architecture
CS 179: Lecture 12.
CS 179: GPU Programming Lecture 19: Projects 1
ECE 8823: GPU Architectures
Ray Tracing on Programmable Graphics Hardware
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Advanced Computer Graphics Introduction
CSCI1600: Embedded and Real Time Software
No. Date Agenda 1 09/14/2012  Course Organization; [slides]  Lecture 1 - What is Cloud Computing [slides] 2 09/21/2012  Lecture 2 - The Art of Concurrency.
Presentation transcript:

CS179: GPU Programming Lecture 16: Final Project Discussion

Today  Final Projects

Recap  Week 1: Why GPU?  Week 2: Learning & Optimizing CUDA  Week 3: CUDA Memory  Week 4: CUDA and OpenGL  Week 5: GPU Accelerated Libraries  Week 6: Waves on the GPU  Week 7: CUDA and MPI  Week 8: Projects  Week 9, 10: Special topics?

Final Project  Self-designed lab  Everything is up to you  Should be about same complexity as labs 3-7  Basing project on existing lab might help  300 points (30% of final grade)  Due Friday, June 6 th  There will be no extensions w/o Dean’s approval!

Project Ideas  Image Processing

Project Ideas  Computer Vision -- Look into OpenCV  Will be difficult without your own rig feature tracking stereo reconstruction (do not copy source code)

Project Ideas  Geometry Processing marching cubes (reference in SDK, don’t copy code)

Project Ideas  Fluid Simulations  Check out NVIDIA GPU Gems, SDK, etc.  Lots of resources online!  As always, don’t directly copy code

Project Ideas  Raytracing

Project Ideas  Sorting  Nothing graphical required here  Will probably be pretty simple in design, but lots to explore  Focus on optimizations, memory, etc.  Algorithm and implementation should be robust!

Project Ideas  Many, many more…  Feel free to do what interests you  Try to keep scale reasonable  Talk to TA if you’re stuck!

Step 1: Design  What problem are you trying to tackle?  Why will GPU-parallelism work for your project?  What will each thread do?  How will memory be handled?  What sort of CPU overhead do you need?  Will any lab help here?

Step 2: Writing the Lab  Easiest to start using an existing lab (but not necessary)  Labs 3 and 4 might be useful for graphics applications  Check other code for useful timing, etc. code  Focus on good memory management  Good memory accessing, using shared instead of global, etc.  After design, project should fall into place  Most GPU algorithms are simple (because GPU threads are simple!)  Again, talk to a TA if you’re unsure where to go

Step 3: Analyzing the Project  README required, should contain:  Brief description of project  Any compilation instructions, external libs, etc.  Answer 3 questions from design phase:  Why does GPU help here?  What work does one thread do per kernel call?  What sorts of considerations did you make regarding memory?  Benchmark performances -- do these meet your expectations?  All this will be in the project website writeup

Schedule  Today: Project introduction  This week’s OH: Lab 7  This week Wed/Fri: Final Project help  Mini-OH during class time: if you need consultation for a project, feel free to swing by  Next weeks: Special topics in GPU programming  GLSL, OpenCV, etc.  Next weeks’ OH: Final Project  Project Due: June 6 th