Skip to content

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

Introduction to GPUs by New York University header

2. Previous Patatrack Knowledge transfer

Indico header of Patatrack Knowledge transfer

Access here: https://indico.cern.ch/event/863657/

Presentations

Direct link to Welcome and Introduction to Parallel Programming

Presentation 01

Direck link to Introduction to GPU programming using CUDA

Presentation 02

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

Direct link to A fully Heterogeneous Pixel Reconstruction

Presentation 02

Hands-on

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

Part 1

Part 2

Part 3

Patatrack Wiki

3. Caltech - GPU Programming [CS 179]

Caltech course image

http://courses.cms.caltech.edu/cs179/

4. Patatrack website and Wiki

Patatrack Wiki

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

Patatrack Website

Access Website here: https://patatrack.web.cern.ch/patatrack/index.html.

5. CUDA algorithms in CMSSW documentation

CUDA algorithms in CMSSW documentation image

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

Website