1 / 15

CS179: GPU Programming

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

Download Presentation

CS179: GPU Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related