CUDA上add f32指令的執行週期到底是多少?

2021-06-16 04:03:37 字數 830 閱讀 7375

這兩天,受網友cuda2010的提醒,發現了乙個令人迷惑的問題,即cuda上add.f32指令的執行週期到底是多少.

從cuda手冊以及各類分析文章上說,cuda上的單精度浮點加法指令的執行週期是4週期.

即如果程式都是序列執行單精度浮點加法計算的話,效能應該是頻率/4fps.

為驗證上面的認識是否正確,嘗試執行了乙個簡單的程式,發現結果並非如此.下面是本次試驗的情況.

試驗平台:

gpu nv 130m 4sm 1.5ghz(sp頻率)

os visita 32

cuda sdk 3.0 + vs2008

為了保證是序列執行,在啟動kernel時使用的引數是<<<1,1>>>.如下(重複執行10次):

for(int ii=0; ii<10; ii++) test1<<<1,1>>>(dres);

而kernel程式test1如下:(修改自cuda2010的程式)

#define k    1125000

#define flop    2

#define type    float

__global__ void test1(type *res) // _z5test1pf

test1程式的主要指令序列是7500條add.f32指令,其它指令所佔比例很小,可以基本忽略.

效能計算公式是:

(1e-9*k*10*flop)/(tend-tbeg)

tend和tbeg是用queryperformancecounter獲取的時間(秒).

頻率/實測效能=1.5/0.0745679=20.116>4!

多出來的週期gpu在幹什麼哪???迷惑!!!

02指令的學習

指令的學習,基本 如下。1.v cloak能夠解決插值表達似式閃爍問題 2.預設 v text 是沒有閃爍問題的,只會覆蓋元素中 原本的內容,但是插值表示式只會替換自己的佔位符,不回將整個元素內容清空 3.v html也會覆蓋所有內容,但是會將msp下的內容以html的形式輸出 4.v bind 是...

Vue的學習之路二 指令學習

v cloak p v text msg h4 div v text msg2 div v html msg2 div type button value 按鈕 v bind title mytitle 123 type button value 按鈕 title mytitle 123 v on ...

angular8 指令的樣式和事件繫結

指令可以理解為沒有模板的元件,它需要乙個宿主元素 推薦使用方括號 指定selector,使它變成乙個屬性 html ts import from angular core export inte ce channel component export class horizontalgridcomp...