Understanding GPU Architecture With Cornell
Written by Nikos Vaggalis   
Friday, 11 April 2025

Find out everything there's to know about GPUs. This Cornell Virtual Workshop will be helpful for those who program in CUDA.

Cornell's Virtual Workshop is a learning platform designed to enhance the computational science skills of researchers.
It is comprised of many Roadmaps dedicated to various Computer Science topics which are grouped by category. Each roadmap consists of about 5-10 topics that are listed in a suggested order. A few follow:

Programming Languages

  • Introduction to C Programming
  • Introduction to Fortran Programming
  • Introduction to Python Programming
  • Introduction to R

Introduction to Advanced Cluster Architectures

  • Understanding GPU Architecture
  • Running Applications

Parallel Computing

  • Concepts
  • Parallel Programming Concepts and High-Performance Computing
  • Scalability
  • MPI

AI, Machine Learning, Data Science

  • An Overview of AI
  • Python for Data Science
  • AI with Deep Learning
  • Visualization

Large Data Visualization

  • ParaView
  • ParaView - Advanced
  • Interactive Data Visualization with Bokeh

From those we've picked the "Understanding GPU Architecture" one to look into, since here at IProgrammer we have a particular interest in CUDA programming.

This rodamap focuses in preparing application programs to run on GPUs by laying out the main features of GPU hardware design. It fits perfectly with the other resources we had covered recently, "Three NVIDIA CUDA Programming Super Resources",
"LeetGPU - The CUDA Challenges" and in particular "Demystifying GPU Terminology".

CUDA is of course NVIDIA's toolkit and programming model which provides a development environment for speeding up computing applications by harnessing the power of GPUs. But the problem when working with GPUs is that :

the documentation is fragmented, making it difficult to connect concepts at different levels of the stack, like Streaming Multiprocessor Architecture, Compute Capability, and nvcc compiler flags .

As such the people at Modal created the GPU glossary ("Demystifying GPU Terminology") to collect, amend and present that information, going to great lengths by collecting material from official documentation to Discord-dedicated channels and even trawling through old-fashioned books.

This virtual workshop follows a similar pattern to the Glossary, looking into:

  • The main architectural features of GPUs and explains how they differ from comparable features of CPUs
  • Discussing the implications for how programs are constructed for General-Purpose computing on GPUs (or GPGPU), and what kinds of software ought to work well on these devices
  • Describing the names, sizes, and speeds of the computational and memory components of specific models of NVIDIA GPU devices

The workshop is organized around the following sections:

GPU Characteristics
Goes into the hardware design for graphics processing units (GPUs) which is optimized for highly parallel processing. As a result, application programs for GPUs rely on programming models like NVIDIA CUDA that can differ substantially from traditional serial programming models based on CPUs.

GPU Memory
GPUs require the data to be in registers to be available for computations. This topic looks at the sizes and properties of the different elements of the GPU's memory hierarchy and how they compare to those found in CPUs.

GPU Example: Tesla V100 GPUs and Frontera: RTX 5000
At the actual hardware level, what does a particular GPU consist of, if one peeks "under the hood"? Sometimes the best way to learn about a certain type of device is to consider one or two concrete examples. First we'll look at the Tesla V100, one of the NVIDIA models that has been favored for HPC applications and then we do a similar deep dive into the Quadro RTX 5000, a GPU which is found in TACC's Frontera.

Exercises
that show you how to interrogate NVIDIA devices so that you can determine certain properties of the hardware.

There are no specific requirements for this roadmap; however, access to Frontera may be helpful, or to any computer that hosts an NVIDIA GPU and has the CUDA Toolkit installed. If you don't have access to any of those, fear not, since LeetGPU has got you covered. LeetGPU which have already covered, is a platform where you can write and test CUDA code without setting anything up, just using your browser. Makers AlphaGPU aim with it to "democratize access to hardware-accelerated languages" by emulating GPUs on CPUs using open-source simulators.

The roadmap does one thing and it does it right. It manages to deconstruct a complex topic into its building blocks to convey its concepts as clear and easy as possible.

Together it with it, another Roadmap, that of Parallel Programming Concepts and High-Performance Computing could be considered as a possible companion for those who seek to expand their knowledge of parallel computing in general, as well as on GPUs.

Make sure to check the rest of the Workshops; it's certain that you'll find something of interest.

 

More Information

Roadmap: Understanding GPU Architecture 

Related Articles

Demystifying GPU Terminology

LeetGPU - The CUDA Challenges

Three NVIDIA CUDA Programming Super Resources 

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


TSP - 81,998 Bars In South Korea Shortest Walking Tour
27/04/2025

It is a truth universally acknowledged that the Travelling Saleman Problem (TSP) is impossible to solve for even reasonably small examples using today's computers. Do we need powerful hardware or a qu [ ... ]



World Quantum Day
16/04/2025

April 14th was World Quantum day and the most noticeable thing that happened was that Google presented us with a nice doodle. Should you get excited?


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info