{ "cells": [ { "cell_type": "markdown", "id": "96f1f4fd", "metadata": {}, "source": [ "# 26) GPUs and CUDA\n", "\n", "Last time:\n", "- Coprocessors\n", "- Energy efficiency\n", "- GPU programming models\n", "\n", "Today:\n", "\n", "1. Graphics Processing Units \n", "2. CUDA preview \n", " 2.1 Kernel syntax examples \n", " 2.2 Thread hierarchy\n", "3. Memory \n", "4. Optimization Details \n", "\n" ] }, { "cell_type": "markdown", "id": "fa6af5a4", "metadata": {}, "source": [ "## 1. Graphics Processing Units\n", "\n", "Graphics Processing Units (GPUs) evolved from commercial demand for high-definition graphics. \n", "\n", "HPC general-purpose computing with GPUs picked up after programmable shaders were added in early 2000s.\n", "\n", "### GPU vs CPU characterization \n", "\n", "GPU compute performance relative to CPU is not magic, rather it is based on difference in goals; GPUs were unpolluted by CPU demands for user-adaptability.\n", "\n", "\n", "\n", "