Why torch.cuda.is_available() Returns False After Installing PyTorch with CUDA on Windows 10? (NVIDIA GeForce 820M Fix Guide)
If you’ve recently installed PyTorch with CUDA support on your Windows 10 machine, only to find that torch.cuda.is_available() returns False, you’re not alone. This issue is particularly common with older NVIDIA GPUs like the GeForce 820M, a budget laptop GPU released in 2013. While modern GPUs (e.g., RTX series) work seamlessly with recent PyTorch and CUDA versions, older models like the 820M face compatibility hurdles due to their limited compute capability and outdated architecture.
This guide demystifies why torch.cuda.is_available() fails for the GeForce 820M and provides a step-by-step fix to enable CUDA acceleration. We’ll cover compatibility issues, driver requirements, and the exact software versions needed to get PyTorch working with your GPU.
When you run torch.cuda.is_available() in Python, PyTorch checks if a CUDA-enabled GPU is detected and usable. A False result means PyTorch is running on CPU only, even if you installed a "CUDA-enabled" PyTorch version. For NVIDIA GeForce 820M users, this is almost always due to incompatibility between the GPU’s capabilities and modern PyTorch/CUDA versions.
Key Limitation of GeForce 820M: Compute Capability#
The NVIDIA GeForce 820M is an entry-level GPU released in 2013. Its critical limitation is its compute capability (CC) of 2.1 (check NVIDIA’s compute capability list). Compute capability is a hardware specification that determines which CUDA features and software versions the GPU supports.
Recent PyTorch versions (1.8.0+) drop support for GPUs with compute capability < 3.5. Since the 820M’s CC is 2.1, it is incompatible with PyTorch 1.8.0 and later. This is the root cause for most users.
Installing a CUDA Toolkit version newer than what the 820M supports (e.g., CUDA 11.0+) will fail, as the GPU lacks hardware support for newer CUDA features.
If you installed the CPU-only version of PyTorch (e.g., via pip install torch without specifying CUDA), torch.cuda.is_available() will always return False.
The NVIDIA GeForce 820M can run PyTorch with CUDA, but only with legacy software: PyTorch 1.7.1 + CUDA 10.2 + NVIDIA Driver 425.31. By following this guide, you’ve bypassed modern compatibility restrictions and enabled GPU acceleration for your 820M.
While performance will be limited (the 820M is a low-end GPU), this setup is ideal for learning and small-scale projects.