← Blog

Stable Diffusion on a used Tesla - which card and what to expect

Agile Store · 22 July 2026 · 8 min read

  • use:stable-diffusion
  • model:p40-24
  • model:v100-32
  • model:p100-16
  • 0
  • 0

For several months I have been generating images on cards that once stood in server rooms as compute accelerators, not as graphics cards in the traditional sense. No video output, model-specific power connections and passive cooling that needs forced airflow: these cards are hardware you have to tame before they produce their first render in A1111 or ComfyUI. The short answer to the question in the title: if you care about comfortable VRAM headroom and working with many models at once, look at the P40. If generation speed matters, go for the V100 without hesitation. Everything else is nuance, but that nuance decides whether you will be satisfied with your purchase or disappointed by the very first batch.

What really matters on the card for Stable Diffusion

In generative imaging two axes are in tension, and they are easy to confuse: VRAM capacity and FP16 compute speed. They are not the same thing, and in the world of server Teslas these two characteristics can be decoupled in a way that surprises people used to consumer cards.

VRAM decides what fits at all: the resolution, the batch size, the number of models and LoRAs loaded at the same time, and whether SDXL will run at all without offloading parts of the model to system RAM. FP16 (and hardware support in the form of Tensor Cores) decides how quickly a single image is produced. A card can have a mountain of memory and still be slow, or have little of it and crunch through work very quickly. That is the crux of the choice between the P40 and the V100.

P40: comfortable capacity, but FP16 lags behind

The Tesla P40 has 24GB of GDDR5 and 346GB/s of bandwidth: on paper it looks like a substantial AI card. The problem is that the Pascal architecture has heavily limited FP16 performance. In practice FP16 brings no speed advantage on this card: native FP16 runs at 1/64 of the FP32 rate, so the P40's real compute budget is its 12 TFLOPS of FP32, and how fast half-precision mode runs depends on whether the software actually does the maths in FP16.

There are two settings worth comparing. The first: keep the weights in FP16 and run the sensitive steps in FP32; in AUTOMATIC1111 this is the --upcast-sampling flag, which the A1111 wiki recommends first for GTX 10xx cards, built on the same Pascal chips. The second: run everything in FP32 with --no-half; the weights take about twice as much memory, but FP32 is the P40's fast native arithmetic path; compare end-to-end throughput in your workflow. Check the it/s of both on your own workflow. Either way, accept that the P40 is simply not a card for fast mass generation, but for comfortable work with large resources: SDXL, several checkpoints and LoRAs loaded at the same time, higher resolutions without out-of-memory errors.

For someone who experiments, tests different models and builds multi-branch workflows in ComfyUI, those 24GB can be invaluable, even though each individual render takes longer. I treat the P40 as a card for conceptual work, not for generating hundreds of images in a row.

V100: full FP16 and Tensor Cores make the difference

The Tesla V100 is in a completely different league in terms of architecture. Volta has full FP16 support and dedicated Tensor Cores, plus 900GB/s of bandwidth thanks to HBM2 memory, about 2.6 times as much as the P40. The difference is noticeable from the very first prompt: generation simply runs more smoothly, without juggling precision flags.

The V100 comes in 16GB and 32GB versions. The 16GB version will comfortably handle SD1.5, SDXL at its native 1024×1024 and most typical workflows, while 32GB is the choice for large batches, high-resolution upscaling or elaborate ComfyUI pipelines with many control models at once. For me it is the natural choice when iteration speed matters, and in generative imaging the speed of testing prompts and settings matters more than it seems at the start.

P100 and A2: the middle ground

The Tesla P100 is a somewhat forgotten card in this comparison, and undeservedly so. It has 16GB of HBM2, full FP16 support and decent memory bandwidth. It is not as fast as the V100, but it generates without resorting to --no-half, which in itself is a considerable advantage over the P40. It is less popular for SD mainly because fewer people think about it at all, which is a pity, because it holds up quite well as a compromise between price and performance.

The A2 (NVIDIA no longer uses the Tesla name for it) follows a completely different philosophy. The Ampere architecture provides FP16/BF16 support and 16GB of GDDR6, but with about 18 TFLOPS of FP16 Tensor compute (the V100 PCIe has 112) and about 200GB/s of memory bandwidth, it generates slowly. It also has very low power consumption. I see it more as a low-power small server for light tasks or inference than as a machine for intensive work with Stable Diffusion. If the priority is low power draw and little heat rather than speed, the A2 makes sense. If generation speed matters, it is probably not the way to go.

SDXL requirements and real comfort

SDXL is noticeably more demanding than SD1.5, both in terms of VRAM and compute power. In practice, comfortable work starts somewhere around 12–16GB and up, and with higher resolutions and larger batches it is better to have headroom. That is why the 24GB on the P40 and the 32GB on the V100 look so attractive on paper; the problem is that only on the V100 does that headroom go hand in hand with a reasonable pace. On the P40 you get the space, but you have to accept slower renders, whichever precision you choose.

Comparison table for Stable Diffusion

Card VRAM Bandwidth FP16 SD usage characteristics
P40 24GB GDDR5 346GB/s 1/64 of FP32, no speed gain; --upcast-sampling or --no-half large capacity, slower generation
V100 16GB 16GB HBM2 900GB/s full, Tensor Cores fast generation, SD1.5 and SDXL comfortably
V100 32GB 32GB HBM2 900GB/s full, Tensor Cores fast generation + headroom for SDXL/ComfyUI
P100 16GB HBM2 732GB/s full a sensible price/performance compromise
A2 16GB GDDR6 about 200GB/s full (FP16/BF16), low power draw a low-power small server, not for fast generation

These five are not an exhaustive list, just the cards that most often end up in SD setups and that we happen to have in our current range; if a different model suits you better, newer or with more VRAM, we can source it to order, with a quotation on request.

In practice: A1111 and ComfyUI on Linux

All these cards are passive designs, intended to work in servers with forced airflow: without an additional cooling duct (a shroud + a fan), do not even try to run them for longer than a few minutes. The P40 and the PCIe versions of the P100 and V100 take auxiliary power through a CPU 8-pin (EPS) connector, not the usual PCIe connectors familiar from consumer cards, so check this before buying a power supply or adapters; the A2 (40-60 W) needs no extra cable and runs from the slot alone. On a desktop motherboard, enable Above 4G Decoding in the BIOS first, otherwise the P40 and other Pascal and Volta cards with large BAR apertures may fail to initialise. These cards have no video output, but the computer can use integrated graphics or a second GPU for its monitor. You can also run headless, install and configure the software over SSH, and view generated images in a browser through A1111 or ComfyUI.

I recommend Linux for this setup. Bare-metal CUDA compute needs the standard NVIDIA data-centre driver, without a vGPU licence. A1111 provides installation instructions for both Linux and Windows; choose driver and library versions compatible with your GPU and operating system.

If the P40 produces NaN errors or black images in A1111, first try --upcast-sampling with --xformers, then --no-half-vae, and use --no-half as a last resort. With SDXL in FP16, the usual culprit is VAE overflow, which can affect any GPU; use --no-half-vae or the fp16-fix VAE. In both A1111 and ComfyUI, check the PyTorch build: CUDA 13 removed offline compilation and library support for Pascal and Volta (the P40, P100 and V100). Choose a CUDA 12.6 (cu126) PyTorch wheel compatible with your application and extensions. PyTorch 2.14 is the last release with these wheels; not every CUDA 12.x build supports these architectures. Stay on R580, the last driver branch supporting them.

The trade-off: capacity or speed

There is no single right answer here, only a question about your way of working. If you generate a lot, iterate on prompts quickly and want to see the result without waiting, the V100 wins hands down, and 32GB adds headroom for SDXL. If what matters to you is working with many models and LoRAs at once and high resolutions, and generation time is secondary, the P40 gives you room that a V100 16GB may lack. The P100 is a sensible middle ground, and I reserve the A2 for scenarios where low power draw and heat matter more than speed.

FAQ

Is the P40 suitable for Stable Diffusion at all?
Yes, but you have to knowingly accept a compromise: native FP16 arithmetic on the P40 runs at 1/64 of the FP32 rate, and you run it with --upcast-sampling or with --no-half (full FP32, more VRAM). In return you get 24GB of VRAM, which can be very convenient with SDXL and many models at once.
V100 16GB or 32GB: which version for SD?
16GB is easily enough for SD1.5 and for SDXL at its native resolution. If you are planning large batches, higher resolutions or elaborate ComfyUI workflows with many control models at once, 32GB gives you a real safety margin.
Can these cards be used under Windows?
Yes. On Windows, Tesla cards typically default to TCC mode for CUDA compute. You do not need to switch them to graphics mode to generate images. Use integrated graphics or another GPU for your monitor, and check driver and library compatibility with your GPU model.
Why does a card without a video output make sense for generating images at all?
Because all the work is done through the A1111 or ComfyUI web interface, which you connect to from another computer. The card computes and you view the images in a browser: a video output is not needed here.
How can I check the condition of a used card before buying?
A load test such as gpu-burn checks computation correctness under load. Monitor clocks and temperature separately with nvidia-smi. The command nvidia-smi -q -d ECC,PAGE_RETIREMENT shows available ECC and retired-page counters; unsupported fields may show N/A. For the A2, also inspect nvidia-smi -q -d ROW_REMAPPER, because Ampere GPUs use row remapping. If you are looking for a tested used Tesla for Stable Diffusion, have a look at our guide to used NVIDIA Tesla GPUs for AI: every card we sell goes through a gpu-burn test before dispatch.

Related products