Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Tensor Offloading

ia

Dé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

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis