Senior
Kuidas profiilida LLM-i inferentsi GPU-l (nsight, torch profiler)?
sobes.tech AI
Vastus AI-lt
Selleks, et profiilida suure keelemudelite (LLM) inferentsi GPU-l, kasutatakse sageli tööriistu nagu NVIDIA Nsight Systems ja PyTorch Profiler.
NVIDIA Nsight Systems pakub üksikasjalikku teavet GPU koormuse, tuuma täitmisaja, mälu kasutamise ja CPU-GPU koostöö kohta. LLM-i inferentsi profiilimiseks tuleb:
- Käivitada inferents nsight-iga pakitud käsuga, näiteks:
nsys profile --trace=cuda,nvtx python inference_script.py
- Analüüsida kogutud andmeid Nsight Systems GUI-s, pöörates tähelepanu:
- CUDA tuumade täitmisajale
- Kutsungite vahelisele viivitusele
- GPU mälu kasutamisele
PyTorch Profiler võimaldab üksikasjalikult profiilida mudeli sisemisi operatsioone:
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
See aitab tuvastada arvutuste kitsaskohti, näiteks aeglasi operatsioone või ebaefektiivset mälu kasutust.
Kokkuvõtteks, süsteemi profiili (Nsight) ja raamistikutaseme profiili (PyTorch Profiler) kombineerimine võimaldab saada täieliku pildi GPU-l toimuvast LLM-i inferentsist ning optimeerida kitsaskohti.