Senior
Ինչպես պրոֆիլավորել LLM-ի ինֆերանսը GPU-ով (nsight, torch profiler)?
sobes.tech AI
Պատասխան AI-ից
Մեծ լեզվային մոդելների (LLM) ինֆերենցիայի պրոֆիլավորումը GPU-ով հաճախ օգտագործում է NVIDIA Nsight Systems և PyTorch Profiler գործիքները:
NVIDIA Nsight Systems-ն մանրամասն տեղեկություններ է տալիս GPU-ի բեռնվածության, միջուկի ժամանակի, հիշողության օգտագործման և CPU-GPU փոխազդեցության մասին: LLM-ի ինֆերենցիայի պրոֆիլավորումը իրականացնելու համար անհրաժեշտ է.
- Սկսել ինֆերենցիան nsight-ով պատված հրամանով, օրինակ՝
nsys profile --trace=cuda,nvtx python inference_script.py
- Վերլուծել հավաքագրված տվյալները Nsight Systems GUI-ում, ուշադրություն դարձնելով՝
- CUDA միջուկների ժամանակին
- Զանգվածների միջև ուշացումներին
- GPU հիշողության օգտագործմանը
PyTorch Profiler-ն թույլ է տալիս մանրամասն պրոֆիլավորել մոդելի ներսում գործողությունները՝
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
Այսպիսով, համակարգային պրոֆիլավորումը (Nsight) և ֆրեյմվորկի մակարդակի պրոֆիլավորումը (PyTorch Profiler) համատեղելով՝ կարելի է ստանալ ամբողջական պատկեր ինֆերենցիային GPU-ով և օպտիմալացնել բլոկները։