Senior
Kako profilisati inferencu LLM na GPU (nsight, torch profiler)?
sobes.tech АИ
Одговор од АИ
Za profilisanje inferense velikih jezičkih modela (LLM) na GPU često se koriste alati poput NVIDIA Nsight Systems i PyTorch Profiler.
NVIDIA Nsight Systems pruža detaljne informacije o opterećenju GPU-a, vremenu izvršavanja jezgra, korišćenju memorije i interakciji CPU-GPU. Za profilisanje inferense LLM potrebno je:
- Pokrenuti inferencu pomoću komande umotane u nsight, na primer:
nsys profile --trace=cuda,nvtx python inference_script.py
- Analizirati prikupljene podatke u GUI-ju Nsight Systems, obraćajući pažnju na:
- Vreme izvršavanja CUDA jezgra
- Kašnjenja između poziva
- Korišćenje memorije GPU-a
PyTorch Profiler omogućava detaljno profilisanje operacija unutar modela:
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
Ovo pomaže da se identifikuju uska grla u računanjima, na primer, spore operacije ili neefikasno korišćenje memorije.
Ukratko, kombinovanjem sistemskog profilisanja (Nsight) i profilisanja na nivou okvira (PyTorch Profiler), može se dobiti potpuna slika o performansama inferense LLM na GPU i optimizovati uska grla.