Table of Contents
The RTX 5070 runs YOLOv8n at ~800–1000 FPS and YOLOv8x at ~60–80 FPS on 640×640 images via PyTorch CUDA. With TensorRT export, throughput roughly doubles. 12 GB is far more than any single CV inference model needs — YOLO models are 5–150 MB. The entire 12 GB budget is available for batch processing or simultaneous multi-model pipelines.
Computer Vision on RTX 5070
Computer vision inference is where the RTX 5070’s 12 GB constraint is least relevant — most CV models are tiny relative to LLMs or diffusion models. YOLOv8 Nano is ~6 MB; YOLOv8 XLarge is ~130 MB. Even running 5 simultaneous detection models uses under 1 GB of VRAM. The full 12 GB is available for batch image processing, multi-camera real-time pipelines, or parallel detection + LLM pipelines.
The RTX 5070’s advantages for CV: 6,144 CUDA cores for fast batch inference, TensorRT FP8 optimisation for maximum throughput, and GDDR7’s 672 GB/s bandwidth for fast image data transfers from CPU memory.
YOLO Object Detection
YOLO (You Only Look Once) is the standard real-time detection architecture. Ultralytics YOLOv8 and YOLOv11 support NVIDIA CUDA natively:
| Model | VRAM | mAP50-95 | Params | RTX 5070 FPS (est.) |
|---|---|---|---|---|
| YOLOv8n | ~0.1 GB | 37.3 | 3.2M | ~800–1000 |
| YOLOv8s | ~0.2 GB | 44.9 | 11.2M | ~500–600 |
| YOLOv8m | ~0.5 GB | 50.2 | 25.9M | ~250–300 |
| YOLOv8l | ~0.8 GB | 52.9 | 43.7M | ~150–180 |
| YOLOv8x | ~1.5 GB | 53.9 | 68.2M | ~70–90 |
| YOLOv11n | ~0.1 GB | 39.5 | 2.6M | ~900–1100 |
| YOLOv11x | ~1.5 GB | 54.7 | 56.9M | ~80–100 |
Even YOLOv8x at ~1.5 GB leaves 10.5 GB for other tasks — or for processing extremely large batch sizes (batch=512 at 640×640 uses ~4–5 GB).
Setup and Installation
pip install ultralytics
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8m.pt") # auto-downloads if not present
# Run inference on image(s)
results = model("image.jpg", device="cuda")
results[0].show() # display with bounding boxes
# Run on video
results = model("video.mp4", stream=True, device="cuda")
for r in results:
print(r.boxes) # process frame-by-frame
# Batch inference (maximises GPU utilisation)
import glob
images = glob.glob("/data/images/*.jpg")
results = model(images, batch=64, device="cuda")
For real-time webcam inference:
model = YOLO("yolov8n.pt")
results = model(source=0, stream=True, device="cuda", show=True)
for r in results:
pass # display runs automatically via show=True
Throughput Benchmarks
Throughput is measured in images per second at 640×640 input resolution, batch size 32:
| Model | Backend | Batch | RTX 5070 FPS (est.) |
|---|---|---|---|
| YOLOv8n | PyTorch FP16 | 32 | ~1200 |
| YOLOv8n | TensorRT FP8 | 32 | ~2400+ |
| YOLOv8m | PyTorch FP16 | 32 | ~350 |
| YOLOv8m | TensorRT FP8 | 32 | ~700+ |
| YOLOv8x | PyTorch FP16 | 32 | ~100 |
| YOLOv8x | TensorRT FP8 | 32 | ~200+ |
Multi-Model Pipelines
12 GB fits several simultaneous CV models:
# Example: Detection + Classification + Segmentation simultaneously
detection = YOLO("yolov8m.pt").to("cuda") # ~0.5 GB
classifier = YOLO("yolov8m-cls.pt").to("cuda") # ~0.5 GB
segmenter = YOLO("yolov8m-seg.pt").to("cuda") # ~0.7 GB
# Total: ~1.7 GB — trivial on 12 GB
# Or: CV + LLM pipeline
# YOLO detects objects, LLM describes the scene
from ultralytics import YOLO
import ollama
yolo = YOLO("yolov8m.pt").to("cuda") # ~0.5 GB on GPU
# Ollama LLM uses remaining 11.5 GB for Qwen 2.5 14B Q4 (~8.7 GB)
def describe_image(image_path):
detections = yolo(image_path)[0]
labels = [yolo.names[int(c)] for c in detections.boxes.cls]
prompt = f"I can see: {', '.join(set(labels))}. Describe this scene."
response = ollama.chat("qwen2.5:14b", [{"role":"user","content":prompt}])
return response["message"]["content"]
TensorRT Acceleration
Export YOLO models to TensorRT for maximum throughput on Blackwell (FP8 path available):
from ultralytics import YOLO
model = YOLO("yolov8m.pt")
# Export to TensorRT (FP16)
model.export(format="engine", device="cuda", half=True)
# Or TensorRT with INT8 calibration
model.export(format="engine", device="cuda", int8=True,
data="coco128.yaml") # calibration dataset
# Load the .engine file for inference
trt_model = YOLO("yolov8m.engine")
results = trt_model("image.jpg", device="cuda")
TensorRT FP8 on Blackwell (5th Gen Tensor Cores) doubles throughput vs FP16 with negligible mAP loss on standard detection tasks.
Run computer vision on RTX 5070
12 GB GDDR7 · YOLOv8/v11 · TensorRT FP8 · £139/mo · Order the RTX 5070 or compare all GPUs.