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
I'll be using Google Colab to start out.
To run a CUDA program in Colab:
- Change the runtime to T4 GPU (as of May 2024)
- 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
- Copy your .cu files to your Colab environment's file system
- 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
- Add a third code block and run your compiled executable:
!./main
- Heterogeneous data parallel computing
- Multidimensional grids and data
- Compute architecture and scheduling
- Memory architecture and data locality
- Performance considerations
- Convolution
- Stencil
- Parallel histogram
- Reduction
- Prefix sum (scan)
- Merge
- Sorting
- Sparse matrix computation
- Graph traversal
- Deep learning
- Iterative MRI reconstruction
- Electrostatic potential map
- Parallel programming and computational thinking
- Programming a heterogeneous computing cluster
- CUDA dynamic parallelism
- Advanced practices and future evolution
- Conclusion