cs179: gpu programming

15
CS179: GPU Programming Lecture 16: Final Project Discussion

Upload: francis-floyd

Post on 02-Jan-2016

50 views

Category:

Documents


1 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS179: GPU Programming

CS179: GPU ProgrammingLecture 16: Final Project Discussion

Page 2: CS179: GPU Programming

Today Final Projects

Page 3: CS179: GPU Programming

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?

Page 4: CS179: GPU Programming

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 6th

There will be no extensions w/o Dean’s approval!

Page 5: CS179: GPU Programming

Project Ideas Image Processing

Page 6: CS179: GPU Programming

Project Ideas Computer Vision -- Look into OpenCV

Will be difficult without your own rig

feature tracking stereo reconstructionhttp://www.cs.unc.edu/~gallup/cuda-stereo/

(do not copy source code)

Page 7: CS179: GPU Programming

Project Ideas Geometry Processing

marching cubes(reference in SDK, don’t copy code)

Page 8: CS179: GPU Programming

Project Ideas Fluid Simulations

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

Page 9: CS179: GPU Programming

Project Ideas Raytracing

Page 10: CS179: GPU Programming

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!

Page 11: CS179: GPU Programming

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

Page 12: CS179: GPU Programming

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?

Page 13: CS179: GPU Programming

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

Page 14: CS179: GPU Programming

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

Page 15: CS179: GPU Programming

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 6th