Sobes.tech
Senior

Hogyan profilozzuk az LLM inferenciát GPU-n (nsight, torch profiler)?

sobes.tech MI

Válasz az MI-től

A GPU-n végzett nagy nyelvi modellek (LLM) inferenciájának profilozásához gyakran használnak olyan eszközöket, mint az NVIDIA Nsight Systems és a PyTorch Profiler.

NVIDIA Nsight Systems részletes információkat nyújt a GPU terheléséről, a mag futási idejéről, a memóriahasználatról és a CPU-GPU interakcióról. Az LLM inferenciájának profilozásához:

  1. Indítsa el az inferenciát egy nsight-be csomagolt parancs segítségével, például:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. Elemezze az összegyűjtött adatokat a Nsight Systems GUI-jában, figyeljen a következőkre:
    • CUDA magok futási ideje
    • Kihívások közötti késleltetések
    • GPU memóriahasználat

PyTorch Profiler lehetővé teszi a modell belső műveleteinek részletes profilozását:

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

Ez segít az esetleges szűk keresztmetszetek, például lassú műveletek vagy nem hatékony memóriahasználat azonosításában.

Összefoglalva, a rendszerprofilozás (Nsight) és a keretrendszer szintű profilozás (PyTorch Profiler) kombinálásával teljes képet kaphatunk a GPU-n végzett LLM inferencia teljesítményéről, és optimalizálhatjuk a szűk keresztmetszeteket.