Hogyan profilozzuk az LLM inferenciát GPU-n (nsight, torch profiler)?
sobes.tech MI
Válasz az MI-től
A GPU-n végzett nagy nyelvi modellek (LLM) inferenciájának profilozásához gyakran használnak olyan eszközöket, mint az NVIDIA Nsight Systems és a PyTorch Profiler.
NVIDIA Nsight Systems részletes információkat nyújt a GPU terheléséről, a mag futási idejéről, a memóriahasználatról és a CPU-GPU interakcióról. Az LLM inferenciájának profilozásához:
- Indítsa el az inferenciát egy nsight-be csomagolt parancs segítségével, például:
nsys profile --trace=cuda,nvtx python inference_script.py
- Elemezze az összegyűjtött adatokat a Nsight Systems GUI-jában, figyeljen a következőkre:
- CUDA magok futási ideje
- Kihívások közötti késleltetések
- GPU memóriahasználat
PyTorch Profiler lehetővé teszi a modell belső műveleteinek részletes profilozását:
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
Ez segít az esetleges szűk keresztmetszetek, például lassú műveletek vagy nem hatékony memóriahasználat azonosításában.
Összefoglalva, a rendszerprofilozás (Nsight) és a keretrendszer szintű profilozás (PyTorch Profiler) kombinálásával teljes képet kaphatunk a GPU-n végzett LLM inferencia teljesítményéről, és optimalizálhatjuk a szűk keresztmetszeteket.