作者johnjohnlin (LYSin8)
看板EE_DSnP
標題[請益] 禮拜三上課說的一句話
時間Fri Dec 24 16:36:41 2010
跟 project 無太大相關
我記得禮拜三上課的時候
老師好像有說過
同樣的一個程式、演算法,人家寫起來就是比你快
請問要做到這步,寫程式的時候有哪些要注意的呢
例如;
如何提升 cache 的使用效率
降低 pipeline 之間的 bubble, branch penalty
這種東西有可能在寫 C/C++ 的階段去做實現嗎
而不是 compiler 的 optimization
如果是可能的,又要如何實現呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.17.147
1F:推 ric2k1:我知道的就是盡量注意變數 allocation 的 locality. 12/24 16:41
2F:→ ric2k1:cache miss 的 rate 比你低,就會比你快了! 12/24 16:41
3F:推 ric2k1:(因為相同 page 的 data 會被一起 cache 起來) 12/24 16:42
4F:推 timrau:到圖書館借"Writing Effeicient Programs" 和 12/24 21:18
5F:→ timrau:"Hacker's Delight"來唸 12/24 21:18
6F:→ timrau:前者教怎樣壓榨時間的常數項,後者教狗急跳牆的時候 12/24 21:19
7F:→ timrau:還能怎麼搞 (用bitwise op消滅for/if以避免pipeline stall) 12/24 21:20
8F:推 timrau:不過最好還是等到確認效能瓶頸後再使用這些技巧 12/24 21:23
9F:→ timrau:不然code會很骯髒... 12/24 21:23
10F:→ johnjohnlin:感謝,不過我想我應該沒辦法確認效能瓶頸,因為我 12/25 00:15
11F:→ johnjohnlin:要做的事是「優化一個計算二維陣列線性內插的迴圈」 12/25 00:15
12F:推 timrau:準備個中等的testcase, 用gprof看看吧 12/25 00:48