2012-09-28 33 views
0
float res[size], a[size], b[size] 
//Several initialization is done 
for(int i=0; i<size; i++) res[i] = a[i]*b[i]; 

我想知道如何測量浮動操作的次數。如何測量做了多少浮動操作?

機器: 型號名稱:Intel(R)核心(TM)2四CPU @ 2.93GH

編譯器: 'gcc版本4.6.1(Ubuntu的/ Linaro的4.6.1-9ubuntu3)'

架構:x86_64。

人們說sse選項會自gcc 4以後自動啓用。雖然有些評論說sse不支持乘法和除法。

我沒有意識到是否啓用了sse,如果我只是編寫上面的代碼。任何人都可以告訴我如何計算浮動操作的次數?

更重要的是,如果浮點數取代double,該怎麼辦?

我不知道方程是:

對於float:2.93 * 4 雙:2.93 * 2

其實,我發現有在x86_64的8個新的寄存器。這會導致8次浮動操作和4次雙重操作嗎?

+1

'的GCC -S',讀取組件的輸出。 – nneonneo

回答