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:
- Nsight-ə daxil olan bir əmr ilə çıxışı başlatın, məsələn:
nsys profile --trace=cuda,nvtx python inference_script.py
- 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.