GPU'da LLM çıkarımını nasıl profil yaparsınız (nsight, torch profiler)?
sobes.tech yapay zeka
AI'dan gelen yanıt
GPU üzerinde büyük dil modellerinin (LLM) çıkarımını profil yapmak için sıklıkla NVIDIA Nsight Systems ve PyTorch Profiler gibi araçlar kullanılır.
NVIDIA Nsight Systems GPU yükü, çekirdek çalışma süresi, bellek kullanımı ve CPU-GPU etkileşimi hakkında ayrıntılı bilgi sağlar. LLM çıkarımını profillemek için:
- Nsight içine sarılmış bir komutla çıkarımı başlatın, örneğin:
nsys profile --trace=cuda,nvtx python inference_script.py
- Toplanan verileri Nsight Systems GUI'sinde analiz edin, dikkat edilmesi gerekenler:
- CUDA çekirdekleri çalışma süresi
- Çağrılar arasındaki gecikmeler
- GPU bellek kullanımı
PyTorch Profiler model içindeki işlemleri detaylı şekilde profil yapmanıza olanak tanır:
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, hesaplamalardaki darboğazları, örneğin yavaş işlemleri veya verimsiz bellek kullanımını tespit etmeye yardımcı olur.
Özetle, sistem profilini (Nsight) ve framework seviyesindeki profilini (PyTorch Profiler) birleştirerek GPU üzerindeki LLM çıkarım performansını tam anlamıyla görebilir ve darboğazları optimize edebilirsiniz.