Senior
Kaip profiliuoti LLM inferenciją GPU (nsight, torch profiler)?
sobes.tech AI
Atsakymas iš AI
Norint profiliuoti didelių kalbos modelių (LLM) inferenciją GPU, dažnai naudojami įrankiai kaip NVIDIA Nsight Systems ir PyTorch Profiler.
NVIDIA Nsight Systems teikia išsamią informaciją apie GPU apkrovą, branduolio vykdymo laiką, atminties naudojimą ir CPU-GPU sąveiką. Norint profiliuoti LLM inferenciją, reikia:
- Paleisti inferenciją su komanda, apgaubta nsight, pavyzdžiui:
nsys profile --trace=cuda,nvtx python inference_script.py
- Analizuoti surinktus duomenis Nsight Systems GUI, atkreipiant dėmesį į:
- CUDA branduolių vykdymo laiką
- Uždelsti tarp kvietimų
- GPU atminties naudojimą
PyTorch Profiler leidžia detaliai profiliuoti operacijas modelio viduje:
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
Tai padeda nustatyti vietas, kuriose yra našumo spragos, pavyzdžiui, lėtos operacijos ar neefektyvus atminties naudojimas.
Apibendrinant, derinant sisteminį profilavimą (Nsight) ir framework lygio profilavimą (PyTorch Profiler), galima gauti pilną vaizdą apie LLM inferencijos našumą GPU ir optimizuoti našumo spragas.