Senior
Ako profilovať inferenciu LLM na GPU (nsight, torch profiler)?
sobes.tech AI
Odpoveď od AI
Na profilovanie inferencie veľkých jazykových modelov (LLM) na GPU sa často používajú nástroje ako NVIDIA Nsight Systems a PyTorch Profiler.
NVIDIA Nsight Systems poskytuje podrobné informácie o zaťažení GPU, čase behu jadra, využití pamäte a interakcii CPU-GPU. Na profilovanie inferencie LLM je potrebné:
- Spustiť inferenciu pomocou príkazu zabaleného v nsight, napríklad:
nsys profile --trace=cuda,nvtx python inference_script.py
- Analyzovať zozbierané údaje v GUI Nsight Systems, venujte pozornosť:
- Času behu CUDA jadier
- Meškaniam medzi volaniami
- Využitiu pamäte GPU
PyTorch Profiler umožňuje detailne profilovať operácie vo vnútri 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
Toto pomáha identifikovať úzke miesta vo výpočtoch, napríklad pomalé operácie alebo neefektívne využívanie pamäte.
V skratke, kombináciou systémového profilovania (Nsight) a profilovania na úrovni rámca (PyTorch Profiler) je možné získať úplný obraz o výkonnosti inferencie LLM na GPU a optimalizovať úzke miesta.