Skip to main content
Learn AI Create the Future — with Pranay
  • Learn
  • Paths
  • Projects
  • Practice
  • Glossary
  • Errors
  • LeetCode
  • Main site

Main site →
Select language

Translation is unavailable right now. Your browser’s own “Translate page” usually works.

Machine translation by Google

Topics

  • 🧱 Foundations 2 sections
  • 🤖 Machine Learning 11 sections
  • 📊 Statistics and Experiments 4 sections
  • 🧭 Doing the Work 9 sections
  • 🧠 Deep Learning 11 sections
    • Deep Learning 13 lessons
    • PyTorch Tensors 10 lessons
    • Autograd in Depth 10 lessons
    • Building Models with nn.Module 11 lessons
    • Datasets and DataLoaders 10 lessons
    • Optimisers, Schedulers and the Training Loop 9 lessons
    • Debugging PyTorch 9 lessons
    • GPU Memory and Speed 10 lessons
      • Overview
      • Reading and fixing CUDA out of memory
      • What is using your GPU memory
      • Mixed precision with autocast and GradScaler
      • Gradient checkpointing
      • torch.compile
      • Profiling with torch.profiler
      • Timing GPU code correctly
      • Fast attention with scaled_dot_product_attention
      • channels_last for convolution networks
      • When the GPU is slower than the CPU
    • Multi-GPU and Distributed Training 11 lessons
    • Checkpoints, Export and Inference 7 lessons
    • Reinforcement Learning 13 lessons
  • 🧰 Libraries and Frameworks 4 sections
  • 💬 Language and NLP 15 sections
  • 👁️ Computer Vision 13 sections
  • 🎙️ Speech, Forecasting and Recommenders 3 sections
  • ✨ Generative AI and LLMs 4 sections
  • 🔬 Inside a Transformer 11 sections
  • ⚙️ Production and MLOps 16 sections
  • 🌍 AI in the Real World 12 sections
  • ⚖️ Safety, Ethics and Law 2 sections

See all topics

  1. Home
  2. Learn
  3. GPU Memory and Speed

🧠 Deep Learning · Section 033

⚡ GPU Memory and Speed

Why training runs out of memory or crawls, and the small number of changes that reliably fix it.

Every lesson in this section is written by Pranay Mahendrakar.

10 of 10 lessons published · Three reading levels on every lesson

Start with “Reading and fixing CUDA out of memory”

Lessons in order

Work top to bottom. Each lesson assumes the one above it.

  1. 01 Reading and fixing CUDA out of memory
  2. 02 What is using your GPU memory
  3. 03 Mixed precision with autocast and GradScaler
  4. 04 Gradient checkpointing
  5. 05 torch.compile
  6. 06 Profiling with torch.profiler
  7. 07 Timing GPU code correctly
  8. 08 Fast attention with scaled_dot_product_attention
  9. 09 channels_last for convolution networks
  10. 10 When the GPU is slower than the CPU
Previous Debugging PyTorch Next Multi-GPU and Distributed Training

Learn AI

Learn Artificial Intelligence the easy way.

Learn. Build. Ask. Share.

Free forever. No sign-up, no ads, no tracking.

Learn

  • All topics
  • Learning paths
  • Projects
  • Practice playground
  • AI glossary
  • Error database
  • LeetCode solutions

Start here

  • Python for AI
  • Mathematics for AI
  • Machine Learning
  • Classic Algorithms in Depth
  • Linear Models and Regularisation
  • Ensembles and Gradient Boosting

This site

  • Search
  • New lessons feed
  • Sitemap
  • About Pranay Mahendrakar
  • pranaymahendrakar.com

© 2026 Pranay Mahendrakar. Written for people who are starting from zero.

10 new lessons every day. If something here is wrong or confusing, that is worth fixing — say so.