Tensor Offloading
iaDéfinition
Le Tensor Offloading (ou CPU offloading) est une technique d'inference LLM qui stocke une partie des poids du modele en RAM CPU (plus grande mais plus lente) et les transfère vers la VRAM GPU (plus petite mais plus rapide) couche par couche pendant l'inference, permettant d'executer des modeles bien plus grands que la VRAM GPU disponible. Le mecanisme layer-by-layer : pendant l'inference, les poids de la couche N sont charges du CPU vers le GPU pendant que les activations de la couche N-1 sont calculees. Idealement, le transfert PCIe de la couche N+1 se fait en parallele du calcul de la couche N, cachant partiellement la latence de transfert. Les performances du tensor offloading : le goulot d'etranglement est la bande passante PCIe (typiquement 16-32 GB/s pour PCIe 4.0 x16 vs 600-2000 GB/s memoire GPU interne). Pour un modele LLaMA 3.1 70B (140 GB de poids en BF16), charger chaque couche prend ~0.5-1ms sur PCIe 4.0. Avec 80 couches, l'inference complete prend ~40-80ms supplementaires — soit 5-20 tokens/s contre 50-100 tokens/s avec tout en VRAM GPU. Les implementations du tensor offloading : llama.cpp (--n-gpu-layers N pour specifier combien de couches sur GPU), HuggingFace Accelerate (device_map='auto' avec max_memory specifiant les limites GPU et CPU), ExLlamaV2 (offloading configurable). La quantisation (GGUF Q4_K_M ou Q8_0) reduit la taille des poids, permettant de charger plus de couches sur GPU. Les cas d'usage pratiques du tensor offloading : un Mac M2 avec 32GB de RAM unifiee peut executer LLaMA 3.1 70B Q4 (~40GB) entierement en RAM avec Neural Engine pour une vitesse correcte. Un PC gaming avec RTX 4090 (24GB VRAM) et 64GB de RAM peut faire du hybrid GPU+CPU offloading pour les modeles 70B, offrant un bon compromis vitesse/accessibilite.
Offloading hybride GPU/CPU avec llama.cpp
# llama.cpp : specifier le nombre de couches sur GPU
# Pour LLaMA 3.1 70B Q4_K_M (40GB) sur GPU 24GB VRAM:
# 24GB VRAM / (40GB / 80 layers) = ~48 layers sur GPU
# Le reste en RAM CPU
# ./llama-cli -m llama-3.1-70b-q4_k_m.gguf \
# -n 200 \
# --n-gpu-layers 48 \ # 48 couches sur GPU, 32 en CPU
# -p 'Explique la securite zero trust :'
# Resultat typique :
# GPU layers: 48/80 | GPU mem: 23.4 GB | CPU mem: 18.6 GB
# Tokens/s: ~12 (vs ~45 tout en VRAM, vs ~2 tout en CPU)
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h