Benchmarking 15 "E-Waste" GPUs with Modern Workloads

eso_logic1 pts0 comments

Benchmarking Tesla GPUs - esologic

Skip to content

Decommissioned NVIDIA enterprise GPUs are one of the last remaining sources of idle VRAM. K80 with 24GB of GDDR5 sells for $60, P100-16GB for around $75 and V100-16GB for under $200. Shortcomings and all, it’s important to understand if we can utilize these widely available cards in the modern era. This project to benchmark tesla GPUs has been in the works for almost a year and over the winter I was able to spend many kilowatt hours heating up my studio with GPUs.

https://esologic.com/wp-content/uploads/2026/07/22-tesla-benchmark-16-9-noaudio.mp4

Table of Contents

Toggle

Box of Tesla GPUs

A goal of all this benchmarking is to come up with a BOM for an inexpensive, 4U GPU node for my homelab. With the right cooler (if you’d like a beta unit of the cooler, join the email list!), these cards are happy to be installed much more densely than their consumer-oriented counterparts. One can easily fit three GPUs and a 10GB NIC into a standard ATX case, rack mount or otherwise.

Similar to GPU price, the cost of X99 Intel E5-* Xeon CPUs and their associated hardware are now so cheap they can’t be ignored. $40 gets you 56 threads @ 3.50 GHz boost using E5-2690. The going rate is $200 for the massive Supermicro X10DRG-Q with its two CPU sockets and 7 PCIe slots. Choosing the CPU and motherboard for a  GPU box is obviously important, but I wanted to have some hard numbers comparing the different schools of thought.

Don’t Be Afraid

Let’s note that all the hardware under examination here has been EOL’d. None of the GPUs are going to get CUDA compatibility updates or drivers anytime soon. Older gear is also going to be less power efficient, consuming much more energy per token. It is irresponsible to suggest these cards be used today.

… is the kind of finger wagging that has no place in homelabbing. The lack of software updates can be easily worked around by just using slightly older software. llama.cpp for example supports many CUDA architectures if you’re willing to build it from source. Using docker, I was able to get all of the software described below running on Kepler, an architecture released in 2014!

The power efficiency perspective is totally valid for high availability usecases. If you’re building something that is going to be used around the clock, you’ll quickly spend your savings on GPUs by paying for electricity. However this is also just not a usecase that is super relevant in the homelab. You’re not using LLMs or doing video processing? Turn off the box.

Content of the GPU Benchmarks

The benchmarking tool itself is published on github and I have already written a blog post about the development of the suite. Still though, here is a short description of the tests that appear in the resulting graphs.

Benchmark<br>Category<br>AI<br>Description

ResNet50 Train B=64<br>Computer Vision Training<br>Measures GPU performance when training a convolutional neural network for image classification.

ResNet50 Infer B=1<br>Computer Vision Inference<br>Measures low-latency image classification inference on a single image.

ResNet50 Infer B=256<br>Computer Vision Inference<br>Measures high-throughput batched image classification inference.

Blender GPU<br>3D Rendering<br>Benchmarks production-style GPU path tracing for professional 3D rendering workloads.

Blender CPU<br>CPU Rendering<br>Provides a CPU rendering baseline using the same Blender scene.

CAT ViT Scores<br>Vision Transformers<br>Measures Vision Transformer inference throughput for image analysis and scoring.

CAT ViT Attention<br>Vision Transformers<br>Measures Vision Transformer attention map generation, a more computationally intensive analysis workload.

llama.cpp Qwen2.5 1.5B Prompt<br>Large Language Models<br>Measures prompt processing (prefill) performance for a small language model.

llama.cpp Qwen2.5 1.5B Gen<br>Large Language Models<br>Measures autoregressive text generation throughput for a small language model.

llama.cpp Llama 3 8B Prompt<br>Large Language Models<br>Measures prompt processing performance for a larger language model.

llama.cpp Llama 3 8B Gen<br>Large Language Models<br>Measures autoregressive text generation throughput for a larger language model.

llama.cpp Qwen1.5 MoE Prompt<br>Large Language Models<br>Measures prompt processing performance for a Mixture-of-Experts language model.

llama.cpp Qwen1.5 MoE Gen<br>Large Language Models<br>Measures text generation throughput for a Mixture-of-Experts language model.

F@H Single<br>Scientific Computing<br>Measures scientific compute performance using molecular dynamics simulations.

F@H Double<br>Scientific Computing<br>Measures scientific compute performance under a heavier molecular dynamics workload.

SHA-256<br>Cryptography<br>Measures raw cryptographic hash computation throughput on the GPU.

Whisper Med FP16<br>Speech Recognition<br>Measures transformer-based speech-to-text inference performance.

Storage→CPU→GPU (gdsio)<br>AI Infrastructure<br>Measures the throughput of loading data from storage into GPU memory, an important...

measures language gpus llama vision performance

Related Articles