這兩天,受網友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...