Difference between revisions of "GPU621/DPS921"

From CDOT Wiki
Jump to: navigation, search
(Created page with '{{GPU621/DPS921 Index | 20141}} Please help make this page resourceful for all GPU621/DPS921 students to use! = Course Material = == GPU621 - Parallel Algorithms and Programmi…')
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{GPU621/DPS921 Index | 20141}}
+
{{GPU621/DPS921 Index | 20187}}
  
 
Please help make this page resourceful for all GPU621/DPS921 students to use!
 
Please help make this page resourceful for all GPU621/DPS921 students to use!
Line 5: Line 5:
 
= Course Material =
 
= Course Material =
  
== GPU621 - Parallel Algorithms and Programming Techniques ==
+
== GPU621/DPS921 - Parallel Algorithms and Programming Techniques ==
<table>
+
*Large data and compute-intensive problems benefit from parallel solutions.&nbsp; Modern hardware has parallel processing capabilities in varying degrees.&nbsp; Students study a set of industry-standard parallel patterns and learn how to implement parallel algorithms on multi-processor accelerators, shared memory systems and distributed systems using a range of programming models.
<tr valign=top>
+
* [https://ict.senecacollege.ca/course/gpu621 GPU621 Course Outline]
<td>
+
* [https://ict.senecacollege.ca/course/dps921 DPS921 Course Outline]
  
*Modern GPU (Graphics Processing Unit) technology supports massively parallel computations, which complements the serial processing capabilities of CPU technology. This course teaches students how to read, write, and debug programs that use both CPU and GPU technology. Students learn to reorganize existing programs into serial code that runs on the CPU and parallel code that runs on the GPU. Students also study cases that have benefited from CPU+GPU programming.
+
== Instructor ==
* [https://scs.senecac.on.ca/course/GPU621 Course Outline]
+
* [https://scs.senecac.on.ca/~chris.szalwinski Chris Szalwinski]
</td>
 
<td>
 
[[Image:NV_CUDA_Teaching_Center_Small.jpg]]
 
</td>
 
</tr>
 
</table>
 
 
 
== DPS915 - Introduction to Parallel Programming ==
 
<table>
 
<tr valign=top>
 
<td>
 
 
 
*Modern GPU (Graphics Processing Unit) technology supports massively parallel computations, which complements the serial processing capabilities of CPU technology. This course teaches students how to read, write, and debug programs that use both CPU and GPU technology. Students learn to reorganize existing programs into serial code that runs on the CPU and parallel code that runs on the GPU. Students also study cases that have benefited from CPU+GPU programming and develop a CPU+GPU application for a client.
 
 
 
* [https://scs.senecac.on.ca/course/dps915 Course Outline]
 
</td>
 
<td>
 
[[Image:NV_CUDA_Teaching_Center_Small.jpg]]
 
</td>
 
</tr>
 
</table>
 
  
 
== External Links ==
 
== External Links ==
* [https://scs.senecac.on.ca/~gpu610/pages/content/index.html Course Web Site – Lecture Notes]
+
* [https://scs.senecac.on.ca/~gpu621/pages/content/index.html Course Web Site – Lecture Notes]
* [https://cs.senecac.on.ca/~gpu610/pages/timeline.html Course Web Site – Timeline]
+
* [https://cs.senecac.on.ca/~gpu621/pages/timeline.html Course Web Site – Timeline]
<!--
 
* [svn://zenit.senecac.on.ca/dpsgpu/trunk Class Samples]
 
-->
 
  
 
== Workshops ==
 
== Workshops ==
 
* The workshops provide timely opportunities to implement some of the material covered during the lectures. Each workshop is graded and all submissions are through [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].
 
* The workshops provide timely opportunities to implement some of the material covered during the lectures. Each workshop is graded and all submissions are through [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].
 
* Detail Specifications
 
* Detail Specifications
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w1.html Initial Profile]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w1.html Platforms]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w2.html BLAS]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w2.html False Sharing]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w3.html Device Query and Selection]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w3.html Prefix Scan]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w4.html cuBLAS]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w4.html Convolution]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w5.html Thrust]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w5.html Threading Building Blocks]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w6.html A Simple Kernel]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w6.html Vectorization]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w7.html Reduction]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w7.html Fork Join]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w8.html Thread Divergence]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w8.html Data Decomposition]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w9.html Coalesced Memory Access]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w9.html Scatter Gather]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w10.html CUDA to OpenCL]
+
*# [https://scs.senecac.on.ca/~gpu621/pages/workshops/w10.html Optimization]
* Grading - The due date for each workshop is noted in [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].  The penalty for late submission is 50% of the workshop mark.
+
* Grading - The due date for each workshop is noted in MySeneca.  The penalty for late submission is 30% of the workshop mark.
 
 
== Assignments  ==
 
# [https://scs.senecac.on.ca/~gpu610/pages/assignments/a1.html Select and Assess]
 
# [https://scs.senecac.on.ca/~gpu610/pages/assignments/a2.html Parallelize]
 
# [https://scs.senecac.on.ca/~gpu610/pages/assignments/a3.html Optimize]
 
  
 
== Evaluation ==
 
== Evaluation ==
  
* Assignments and Presentation 30%
+
* Project 20%
* Workshops 20%
+
* Workshops 30%
* Test 20%
+
* Tests without Final Exam 50%
* Exam 30%
+
* Tests with Final Exam 35%
 +
* Final Exam (optional) 15%
  
 
= Resources =
 
= Resources =
* Software Support
+
* Current Software Support
** [http://developer.nvidia.com/cuda-downloads CUDA Toolkit]
+
** Matrix
** Get [https://inside.senecacollege.ca/its/software/index.html Visual Studio 2012 Ultimate] | Select Software Downloads | Go To Visual Studio 2012 Ultimate 1.49GB | Download iso | Burn, if error burn again | Finally, install
+
*** Cilk Plus - /usr/local/gcc/gcc-cilk/bin/g++ - version 4.9.0 experimental
 +
*** TBB - /usr/local/gcc/tbb - version 4.1 update 4 (20130613)
 +
** T2108
 +
*** Matrix Image (as above)
 +
*** CUDA 5.5 July 2013 - supports Visual Studio 2012
 +
 
  
 
<!--
 
<!--

Revision as of 22:07, 9 September 2018


GPU621/DPS921 | Participants | Groups and Projects | Resources | Glossary

Please help make this page resourceful for all GPU621/DPS921 students to use!

Course Material

GPU621/DPS921 - Parallel Algorithms and Programming Techniques

  • Large data and compute-intensive problems benefit from parallel solutions.  Modern hardware has parallel processing capabilities in varying degrees.  Students study a set of industry-standard parallel patterns and learn how to implement parallel algorithms on multi-processor accelerators, shared memory systems and distributed systems using a range of programming models.
  • GPU621 Course Outline
  • DPS921 Course Outline

Instructor

External Links

Workshops

Evaluation

  • Project 20%
  • Workshops 30%
  • Tests without Final Exam 50%
  • Tests with Final Exam 35%
  • Final Exam (optional) 15%

Resources

  • Current Software Support
    • Matrix
      • Cilk Plus - /usr/local/gcc/gcc-cilk/bin/g++ - version 4.9.0 experimental
      • TBB - /usr/local/gcc/tbb - version 4.1 update 4 (20130613)
    • T2108
      • Matrix Image (as above)
      • CUDA 5.5 July 2013 - supports Visual Studio 2012