Sobes.tech
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:

  1. Spustit inferenci pomocí příkazu zabaleného v nsight, například:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. 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.