Performans Ölçümü

1 minute read

PERFORMANS ÖLÇÜMÜ

Kernel yürütme süresi “bandwidth(bantgenişliği)” ile ölçülmektedir. Etkili bir değerlendirme yapılabilmesi için “Teorik Bantgenişliği” ve “Etkin Bantgenişliği” ölçümlerinin yapılması gerekmektedir.

Teorik Bantgenişliği

Teorik bantgenişliği, ürünün literatüründe belirtilen donanımsal özelliklere göre hesaplanır. Örneğin, NVIDIA Tesla M2050 GİB, DDR(Double Data Rate) RAM kullanır. Bir bellek saat oranı(memory clock rate) 1,546 MHz ve 384-bit genişliğinde bellek arayüzüne sahiptir. Bu veriler ile teorik bantgenişliği hesaplaması Şekil 4-22’de ifade edilmiştir.

</a>

Etkin Bantgenişliği

Etkin bantgenişliği “BWEffective = (RB + WB) / (t * 109)” formülü ile hesaplanmaktadır. Burada “RB” ile her kernel’den okunan byte sayısı ifade edilmektedir. “WB” ile her bir kernel’e yazılan byte miktarı gösterilmektedir. “t ” saniye cinsinden geçen zamanı ifade etmektedir. Örneğin, N adet float sayının kopyalanması işleminin etkin bantgenişliği hesaplanacak olursa: (RB + WB)=her float sayı için (1+1)=2 olarak formülde yerine yazılır. Float sayı kopyalanacağı için N*4 çarpımı, (RB + WB) ile çarpılarak hesaplanır. CUDA’da etkin bantgenişliği hesaplamaları “Event API” ile yapılmaktadır.

CUDA Event API

Fonksiyonları:

cudaEventCreate: Event nesnesi yaratır.

cudaEventCreateWithFlags: Belirlenmiş bayraklar ile event nesnesi oluşturur.

cudaEventDestroy: Bir event nesnesini yok eder.

cudaEventElapsedTime : Event’ler arasındaki geçen zamanı hesaplar.

cudaEventQuery : Bir event’in durumunu sorgular.

cudaEventRecord : Bir event’i kaydeder.

cudaEventSynchronize : Bir event’in tamamlanmasını bekler.

Kullanım Senaryoları:

CUDA çağrısı için geçen süre ölçülmesi (clock cycle precision) Asenkron CUDA çağrısının durum sorgulaması

Tags:

Updated:

Leave a Comment