{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## N Ways to GPU Programming\n", "\n", "## Learning Objectives\n", "With the release of NVIDIA CUDA in 2007, different approaches to GPU programming have evolved. Each approach has its own advantages and disadvantages. By the end of this bootcamp session, participants will have a broader perspective on GPU programming approaches to help them select a programming model that better fits their application's needs and constraints. The bootcamp will teach how to accelerate a real-world scientific application using the following methods:\n", "* Standard: C++ stdpar, Fortran Do-Concurrent\n", "* Directives: OpenACC, OpenMP\n", "* Frameworks: Kokkos\n", "* Programming Language Extension: CUDA C, CUDA Fortran, Python CuPy, Python Numba\n", "\n", "Let's start by testing the CUDA Driver and GPU you are running the code on in this lab:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!nvidia-smi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bootcamp Outline\n", "\n", "During this lab, we will be working on porting mini applications in Molecular Simulation (MD) domain to GPUs. You can choose to work with either version of this application. Please click on one of the below links to start N Ways to GPU Programming in **MD** for:\n", "\n", "- [C and Fortran](nways_MD/English/nways_MD_start.ipynb) domain\n", "- [Python](nways_MD/English/nways_MD_start_python.ipynb) domain" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bootcamp Duration\n", "The lab material will be presented in an 8-hour session. A Link to the material is available for download at the end of the lab.\n", "\n", "### Content Level\n", "Beginner, Intermediate\n", "\n", "### Target Audience and Prerequisites\n", "The target audience for this lab are researchers/graduate students and developers who are interested in learning about various ways of GPU programming to accelerate their scientific applications.\n", "\n", "Basic experience with C/C++ or Python or Fortran programming is needed. No GPU programming knowledge is required. \n", "\n", "--- \n", "\n", "## Licensing \n", "\n", "This material is released by OpenACC-Standard.org, in collaboration with NVIDIA Corporation, under the Creative Commons Attribution 4.0 International (CC BY 4.0)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 }