2012-12-16 82 views
-1

例如,計算數學OPS這裏:當我們計算Gflop時,我們是否需要考慮指數計算?

  for (int i = 0; i < 100; ++i) 
      { 
      for (int j = 0; j < 50; ++j) 
      { 
       X[i*xcol+j] = Y[i] * Z[j]; 
      } 
      } 

我們應該計數OPS像++ii*xcol+j等在我們的總GFLOPS(你在這裏指出明顯的錯誤之前,讓我們忘了觸發器的嚴格定義瞬間)計數還是我們只需要計數Y[i]*Z[j]?我之所以問這個問題,是因爲我讀了一些論文,他們只把最後一篇作爲這裏的數字。

+0

這個問題非常模糊,與任何標籤都沒有關聯。它只與軟件相關。 – xaxxon

回答

2

當你爲我完成一份工作時,我所關心的是計算我想要的東西。我不在乎計算你的開銷。在這種情況下,目標是將每個Y乘以每個Z。所以問題是,你能每秒給我多少次乘法?

我不在乎你是否必須做很多數組索引計算,或者你找到了一些方法。例如,假設有一天你在進行2萬次算術運算,給我5000次乘法運算,並且這花了你1秒(太慢了,不能成爲現代計算機)。對我來說,就是每秒5000次觸發。第二天,你找出一個更好的方法來編寫代碼,它只需要你一萬次的算術運算給我5000次乘法運算,而這需要你半秒鐘的時間。那是每秒10000次觸發。

顯然,我寧願在半秒鐘內完成5,000次操作。這些是唯一的操作。

+0

當然,但是當目的是測量特定硬件的峯值速度/數學運算速率時,我認爲應該考慮到索引計算,更不用說索引計算可能會有很大的變化,這取決於您如何組織數據和你的循環。 – user0002128

+0

@ user1748356:如果你已經確信你的觀點,你爲什麼要問? – GManNickG

+1

@ user1748356:測量時間時會考慮這些因素。當你進行不是你的目標的操作時,他們需要時間,這使得計算出的觸發器更低。性能測量是目標(計算所需的觸發器)除以成本(所花費的時間)。 –

相關問題