Skip to content

Notes on "Programming Massively Parallel Processors" by Hwu, Kirk, and Hajj (4th ed.)

Notifications You must be signed in to change notification settings

loganwatchorn/notes-pmpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome

Hi there,

Over the next few months, I'll be reading Programming Massively Parallel Processors by Hwu, Kirk, and Hajj.

I'll be posting my notes here as I go along. I hope it helps anyone who shares my interest in parallel computation!

Happy learning!

- Logan

Running CUDA Code

I'll be using Google Colab to start out.

To run a CUDA program in Colab:

  1. Change the runtime to T4 GPU (as of May 2024)
  2. Run the following in your notebook to check that NVCC & CUDA are installed. By default, the T4 GPU runtime should come with CUDA 12.
    !nvcc --version
    
  3. Copy your .cu files to your Colab environment's file system
  4. Add a second code block where you compile your .cu files. For a simple program contained in a single file main.cu, linking a single library (jpeglib, for example), we can use the following:
    !nvcc -o main main.cu -ljpeg
    
  5. Add a third code block and run your compiled executable:
    !./main
    

Table of Contents

  1. Preface
  2. Intro

Part I: Fundamental Concepts

  1. Heterogeneous data parallel computing
  2. Multidimensional grids and data
  3. Compute architecture and scheduling
  4. Memory architecture and data locality
  5. Performance considerations

Part II: Parallel Patterns

  1. Convolution
  2. Stencil
  3. Parallel histogram
  4. Reduction
  5. Prefix sum (scan)
  6. Merge

Part III: Advanced Patterns and Applications

  1. Sorting
  2. Sparse matrix computation
  3. Graph traversal
  4. Deep learning
  5. Iterative MRI reconstruction
  6. Electrostatic potential map
  7. Parallel programming and computational thinking

Part IV: Advanced Practices

  1. Programming a heterogeneous computing cluster
  2. CUDA dynamic parallelism
  3. Advanced practices and future evolution
  4. Conclusion

Sample Programs:

About

Notes on "Programming Massively Parallel Processors" by Hwu, Kirk, and Hajj (4th ed.)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published