"Hands on" project on GPU and vectorization: basis on CUDA and TensorFlow


Description of the project: Vectorised calculations and heterogeneous computing architectures receive a lot of attention in HEP. The aim of this project is to provide the introduction to massively parallel calculation and show how they can be useful in various stages of HEP data analysis. The project consists of two parts: 

  • Introduction to CUDA programming (Dorothea): Basic principles of the GPU architecture and the programming language CUDA will be introduced. The participants can gain hands-on experience with several exercises implementing for example vector addition and matrix multiplication to be processed on a GPU.
  • Introduction to TensorFlow framework and its applications in physics analysis (Anton). The tutorials will include exercises with both pure TensorFlow v2 (using python interface) and with the TensorFlowAnalysis package that provides HEP extension. The example applications we will deal with are toy MC generation, maximum likelihood fits and amplitude analyses. 

Preliminary requirements: Knowledge of C++ (CUDA) and Python (TensorFlow). Familiarity with numpy would be an advantage. 

  • Hardware: 
    • CUDA introduction: access to machine with NVidia GPU
    • TensorFlow introduction: GPU access is not necessary, but would be an advantage. 
  • Software: 
    • CUDA introduction: CUDA installation on the machine with Nvidia GPU
    • TensorFlow introduction: TensorFlow v2, sympy, uproot, iminuit. The configuration file for Conda package manager will be available at the dedicated GitHub page.  

Project coordinators:  Anton Poluektov (anton.poluektov@cern.ch), Dorothea Vom Bruch (dorothea.vom.bruch@cern.ch)

If you would like to participate in the CUDA hands-on project and do not have access to a server with CUDA installation and Nvidia GPU, please get in touch with Dorothea.

Mattermost channel for discussions: 


ZOOM connection details: 


Meeting ID: 959 7454 0487
Passcode: 023379
One tap mobile
+41432107042,,95974540487#,,,,,,0#,,023379# Switzerland
+41432107108,,95974540487#,,,,,,0#,,023379# Switzerland

Dial by your location
        +41 43 210 70 42 Switzerland
        +41 43 210 71 08 Switzerland
        +41 31 528 09 88 Switzerland
        +33 1 7037 9729 France
        +33 1 8699 5831 France
        +33 1 7037 2246 France
Meeting ID: 959 7454 0487
Passcode: 023379
Find your local number: https://cern.zoom.us/u/awXtof2cs

Join by SIP

Join by H.323
Meeting ID: 959 7454 0487
Passcode: 023379

  • Benjamin Audurier
  • Bertrand Laforge
  • Elisabeth Niel
  • Francesco Polci
  • Frederic Kapusta
  • Gaetano de Marino
  • Giampiero Mancinelli
  • Hossein AFSHARNIA
  • Jacopo Cerasoli
  • Jérôme Charles
  • Lukas Varnhorst
  • Mark Goodsell
  • Olivier Leroy
  • Raul Iraq Rabadan Trejo
  • Renato Quagliani
  • Resmi PK
  • Sara Maleubre
  • Siavash Neshatpour
  • Steffen Weber
  • Stephane T'JAMPENS
  • Vidya Sagar VOBBILISETTI