These are the materials prepared for the gpu class at northeastern university. Three lectures are presented, covering the following topics. [1] Lecture 4 - gpu memory - shared memory - matrix multiplication optimization - bank conflicts - other memory types [2] Lecture 5 - Pinned vs Non-pinned Memory - Unified Memory - Dual copy engines / Concurrency - Parallel Reduction [3] Lecture 6 (Application Optimization) - prefix sum (scan) - histogram - convolution