Download
cs179 gpu programming n.
Skip this Video
Loading SlideShow in 5 Seconds..
CS179: GPU Programming PowerPoint Presentation
Download Presentation
CS179: GPU Programming

CS179: GPU Programming

145 Vues Download Presentation
Télécharger la présentation

CS179: GPU Programming

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. CS179: GPU Programming Lecture 16: Final Project Discussion

  2. Today • Final Projects

  3. 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?

  4. 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!

  5. Project Ideas • Image Processing

  6. Project Ideas • Computer Vision -- Look into OpenCV • Will be difficult without your own rig stereo reconstruction http://www.cs.unc.edu/~gallup/cuda-stereo/ (do not copy source code) feature tracking

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

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

  9. Project Ideas • Raytracing

  10. 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!

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

  12. 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?

  13. 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

  14. 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

  15. 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