CMS Tracker DPG Knowledge Transfer Material
Documentation
In contrast to some previous approaches (see archived) this version won't try to cover already existing material. There are some great and readily available resources out there that one can learn to learn CUDA programming, so in this version this won't be covered.
Other resources
It is recommended and in some cases necessary to follow these courses and read these manuals before browsing the content here:
1. Introduction to GPUs by NYU
Introduction to GPUs by New York University

2. Previous Patatrack Knowledge transfer

Access here: https://indico.cern.ch/event/863657/
Presentations
Direct link to Welcome and Introduction to Parallel Programming

Direck link to Introduction to GPU programming using CUDA

Direct link to SoA model for Pixel Reconstruction (and beyond?)
Direct link to A fully Heterogeneous Pixel Reconstruction

Hands-on
Solve all exercises here https://patatrack.web.cern.ch/patatrack/wiki/cuda_training_dpg_12_2019/

3. Caltech - GPU Programming [CS 179]

http://courses.cms.caltech.edu/cs179/
4. Patatrack website and Wiki

Access Wiki here: https://patatrack.web.cern.ch/patatrack/wiki/.

Access Website here: https://patatrack.web.cern.ch/patatrack/index.html.
5. CUDA algorithms in CMSSW documentation

https://github.com/cms-patatrack/cmssw/blob/master/HeterogeneousCore/CUDACore/README.md
6. CUDA Programming Guide
Honestly, so many other online resources just borrow from here, one might as well just read the original
Access here: https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
