Sobes.tech
Senior

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:

  1. Nsight içine sarılmış bir komutla çıkarımı başlatın, örneğin:
nsys profile --trace=cuda,nvtx python inference_script.py
  1. 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.