Fundamentals of Heterogeneous Parallel Programming with CUDA C/C++ ==================================================================== This course by `The Molecular Sciences Software Institute `_ (MolSSI) overviews the fundamentals of heterogeneous parallel programming with CUDA C/C++ at the beginner level. .. admonition:: Prerequisites :class: attention * Previous knowledge of High-performance Computing (HPC) basic concepts are helpful but not required for starting this course. Nevertheless, we encourage students to take a glance at our `Parallel Programming `_ tutorial, specifically, Chapters 1, 2 and 5 for a brief overview of some of the fundamental concepts in HPC. * Basic familiarity with Bash, C and C++ programming languages is required. .. admonition:: Software/Hardware Specifications :class: note The following NVIDIA CUDA-enabled GPU devices have been used throughout this tutorial: * Device 0: `GeForce GTX 1650 `_ with Turing architecture (Compute Capability = 7.5) * Device 1: `GeForce GT 740M `_ with Kepler architecture (Compute Capability = 3.5) Linux 18.04 (Bionic Beaver) OS is the target platform for CUDA Toolkit v11.2.0 on the two host machines armed with devices 0 and 1. Workshop Lessons ---------------- .. csv-table:: :file: csv_tables/cuda_lessons.csv :header-rows: 1 .. toctree:: :maxdepth: 2 :hidden: :titlesonly: setup 01-introduction 02-basic-concepts 03-cuda-program-model 04-gpu-compilation-model 05-cuda-execution-model