Sobes.tech
Senior

Kuidas profiilida LLM-i inferentsi GPU-l (nsight, torch profiler)?

sobes.tech AI

Vastus AI-lt

Selleks, et profiilida suure keelemudelite (LLM) inferentsi GPU-l, kasutatakse sageli tööriistu nagu NVIDIA Nsight Systems ja PyTorch Profiler.

NVIDIA Nsight Systems pakub üksikasjalikku teavet GPU koormuse, tuuma täitmisaja, mälu kasutamise ja CPU-GPU koostöö kohta. LLM-i inferentsi profiilimiseks tuleb:

  1. Käivitada inferents nsight-iga pakitud käsuga, näiteks:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. Analüüsida kogutud andmeid Nsight Systems GUI-s, pöörates tähelepanu:
    • CUDA tuumade täitmisajale
    • Kutsungite vahelisele viivitusele
    • GPU mälu kasutamisele

PyTorch Profiler võimaldab üksikasjalikult profiilida mudeli sisemisi operatsioone:

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

See aitab tuvastada arvutuste kitsaskohti, näiteks aeglasi operatsioone või ebaefektiivset mälu kasutust.

Kokkuvõtteks, süsteemi profiili (Nsight) ja raamistikutaseme profiili (PyTorch Profiler) kombineerimine võimaldab saada täieliku pildi GPU-l toimuvast LLM-i inferentsist ning optimeerida kitsaskohti.