Sobes.tech
Senior

GPU-da LLM-inferensiyasını necə profil etmək olar (nsight, torch profiler)?

sobes.tech Süni İntellekt

AI-dan cavab

GPU üzərində böyük dil modellərinin (LLM) çıxışını profil etmək üçün tez-tez NVIDIA Nsight Systems və PyTorch Profiler kimi alətlər istifadə olunur.

NVIDIA Nsight Systems GPU yüklənməsi, nüvə vaxtı, yaddaş istifadəsi və CPU-GPU qarşılıqlı əlaqəsi haqqında ətraflı məlumat verir. LLM çıxışını profil etmək üçün:

  1. Nsight-ə daxil olan bir əmr ilə çıxışı başlatın, məsələn:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. Toplanmış məlumatları Nsight Systems GUI-də analiz edin, diqqət yetirin:
    • CUDA nüvələrinin vaxtı
    • Çağırışlar arasındakı gecikmələr
    • GPU yaddaş istifadəsi

PyTorch Profiler model daxilindəki əməliyyatları ətraflı profil etmək imkanı verir:

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

Bu, hesablamalarda tıxac yerləri, məsələn, yavaş əməliyyatlar və ya yaddaşın qeyri-effektiv istifadəsini aşkar etməyə kömək edir.

Nəticə olaraq, sistem profilini (Nsight) və çərçivə səviyyəsində profilini (PyTorch Profiler) birləşdirərək GPU-da LLM-in çıxış performansını tam şəkildə görə və tıxac yerlərini optimallaşdıra bilərsiniz.