我已經測試了NVIDIA探查器內核,其輸出如下:GPU利用率解讀
我們已經推出了具有256塊和256個線程內核。 據我明白了,GRAFIC示出了三個部分,一個用於扭曲,一個用於寄存器,一個用於共享內存和每個部分具有計算出的「塊限制」,從該一個在寄存器部是最小和最大限制值。 顯然,內核是綁定的,我們只能在一個SM上同時啓動4個塊。這就是Profiler所說的。我堅決問自己關於以下的事情:
一個GTX 780鈦,擁有192個核心的一個SM,怎麼可能是4塊* 256個線程= 1024個線程可以同時推出?無論如何,CUDA中的術語「同時」是指什麼?這是否意味着,可以在調度程序中同時調度4個塊,並且SM以當前單塊的變形以鎖步方式執行指令。這個詞同時有點混淆?
非常感謝
每線程寄存器,其使用的是在目前的數量限制塊,其可以同時(在同一時間)上的一個SM執行的數目。因此GPU沒有得到充分利用。請記住,寄存器,塊和線程之間的關係是一種三方關係。這個文檔http://developer.download.nvidia.com/compute/cuda/CUDA_Occupancy_calculator.xls可以幫助你。 – KiaMorot 2014-09-10 12:46:19