Sobes.tech
Senior

Kā profilēt LLM inferenci uz GPU (nsight, torch profiler)?

sobes.tech AI

Atbilde no AI

Lai profilētu lielu valodu modeļu (LLM) inferenci GPU, bieži tiek izmantoti rīki, piemēram, NVIDIA Nsight Systems un PyTorch Profiler.

NVIDIA Nsight Systems sniedz detalizētu informāciju par GPU slodzi, kodola izpildes laiku, atmiņas izmantošanu un CPU-GPU mijiedarbību. Lai profilētu LLM inferenci, ir jā:

  1. Sākt inferenci ar komandu, kas ietverta nsight, piemēram:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. Analizēt savāktos datus Nsight Systems GUI, pievēršot uzmanību:
    • CUDA kodola izpildes laikam
    • Aizkavējumiem starp izsaukumiem
    • GPU atmiņas izmantojumam

PyTorch Profiler ļauj detalizēti profilēt operācijas modelī:

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

Tas palīdz identificēt šaurās vietas aprēķinos, piemēram, lēnas operācijas vai neefektīvu atmiņas izmantošanu.

Kopsavilkumā, apvienojot sistēmas profilēšanu (Nsight) un ietvara līmeņa profilēšanu (PyTorch Profiler), ir iespējams iegūt pilnu priekšstatu par GPU veiktspēju LLM inferencē un optimizēt šaurās vietas.