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

  1. Spustiť inferenciu pomocou príkazu zabaleného v nsight, napríklad:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. 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.