Cum se profilează inferența LLM pe GPU (nsight, torch profiler)?
sobes.tech AI
Răspuns de la AI
Pentru profilarea inferenței modelelor mari de limbaj (LLM) pe GPU, se folosesc adesea instrumente precum NVIDIA Nsight Systems și PyTorch Profiler.
NVIDIA Nsight Systems oferă informații detaliate despre încărcarea GPU-ului, timpul de execuție al nucleului, utilizarea memoriei și interacțiunea CPU-GPU. Pentru profilarea inferenței LLM, trebuie:
- Să porniți inferența cu o comandă învelită în nsight, de exemplu:
nsys profile --trace=cuda,nvtx python inference_script.py
- Să analizați datele colectate în GUI-ul Nsight Systems, acordând atenție la:
- Timpul de execuție al nucleelor CUDA
- Întârzierea între apeluri
- Utilizarea memoriei GPU
PyTorch Profiler permite profilarea detaliată a operațiilor din interiorul modelului:
import torch
from torch.profiler import profile, record_function, ProfilerActivity
def inference(model, input):
with profile(activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], record_shapes=True) as prof:
with record_function("model_inference"):
output = model(input)
print(prof.key_averages().table(sort_by="cuda_time_total"))
return output
Acest lucru ajută la identificarea punctelor slabe în calcule, cum ar fi operațiuni lente sau utilizarea ineficientă a memoriei.
În concluzie, combinând profilarea sistemului (Nsight) și profilarea la nivel de framework (PyTorch Profiler), se poate obține o imagine completă a performanței inferenței LLM pe GPU și se pot optimiza punctele slabe.