Senior
Jak profilovat inferenci LLM na GPU (nsight, torch profiler)?
sobes.tech AI
Odpověď od AI
Pro profilování inferenčního procesu velkých jazykových modelů (LLM) na GPU se často používají nástroje jako NVIDIA Nsight Systems a PyTorch Profiler.
NVIDIA Nsight Systems poskytuje podrobné informace o zatížení GPU, době běhu jádra, využití paměti a interakci CPU-GPU. Pro profilování inferenčního procesu LLM je třeba:
- Spustit inferenci pomocí příkazu zabaleného v nsight, například:
nsys profile --trace=cuda,nvtx python inference_script.py
- Analyzovat shromážděná data v GUI Nsight Systems, věnujte pozornost:
- Času běhu CUDA jader
- Zpožděním mezi voláními
- Využití paměti GPU
PyTorch Profiler umožňuje detailní profilování operací uvnitř modelu:
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
Pomáhá odhalit úzká místa ve výpočtech, například pomalé operace nebo neefektivní využití paměti.
Stručně řečeno, kombinací systémového profilování (Nsight) a profilování na úrovni frameworku (PyTorch Profiler) lze získat úplný obrázek o výkonu inferenčního procesu LLM na GPU a optimalizovat úzká místa.