CUDA 13 and PyTorch dropped the P100: what still works

· Local AI · Guides · Tesla P100 16GB

Illustration of a circuit board on a workbench with a wrench, screwdriver, gears and a blank screen
Illustration: AI-generated locally with FLUX.2 klein.

The P100 is compute capability 6.0 (sm_60). Newer toolchains are quietly leaving it behind, and the failure message doesn’t tell you why:

no kernel image is available for execution on the device

That means the binary contains no GPU code for your card’s architecture.

Driver: stay on the 580 branch

NVIDIA says the 580 driver series “will be the last to support” Maxwell, Pascal and Volta. Pin 580 and don’t let your package manager move you to 590 or newer.

On Linux there’s a second catch: NVIDIA’s newer open kernel modules don’t support Pascal. Its own guidance for Maxwell, Pascal and Volta is to keep using the proprietary driver. On Ubuntu that means the 580 packages without -open in the name. For a headless box I used nvidia-headless-580-server when I set up a two-P100 Ubuntu machine in October 2026.

llama.cpp: build it with CUDA 12.x

CUDA 13 removed offline compilation and library support for Maxwell, Pascal and Volta, so my CUDA 13 builds of llama.cpp don’t include sm_60 at all. Every build that runs on the P100 is compiled with CUDA 12.9 and lists the architecture explicitly:

cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="60;86"
cmake --build build --config Release

PyTorch: use the cu118 wheels

The official PyTorch 2.8 Windows wheels for cu126 and cu128 both start at sm_61. The P100 misses by one.

What works (verified with a real CUDA op on the card):

pip install torch==2.7.1+cu118 torchaudio==2.7.1+cu118 --index-url https://download.pytorch.org/whl/cu118

bf16: switch to float32

The P100 has no fast bf16. Many modern models (TTS, diffusion) default to bf16 and will either crash or crawl. Force float32 (or fp16 where the model tolerates it). I had to do this for a text-to-speech model, and after that it ran fine.

Checklist

  1. nvidia-smi shows the card → the driver is fine.
  2. “No kernel image” → your binary lacks sm_60. Rebuild with 60 in the arch list, or use a CUDA 12 / cu118 build.
  3. Garbage output or very slow → look for bf16 and switch to float32.

Next: pairing the P100 with a gaming card.