作者OASYS (打倒萬惡ETS)
看板Programming
標題Re: [問題] 追求效能下,在Do Loop下用IF敘述?
時間Thu Mar 13 08:51:40 2008
首先感謝眾位高手的指點..小弟只是一個小小的物理所研究生..所以相關資訊課程
並沒有修過,都靠自己摸索..T_T
小弟想進一步請教,大大們能否推薦一些有關architecture的書,原文或中文皆可
另外也感謝網友提供GPGPU的資訊,這是小弟一直很想知道的資訊!
: 沒錯,還是跑 profiling 最實際,
: 不過我的建議是先看看 profiling 的資訊,
: 如果你的架構是 intel 的那可以想辦法去弄到 vTune,
: 只要你對 architecture (不一定要修過課) 夠瞭解的話,
: 它可以提供你相當多的資訊,
: 當然也包括 branch prediction 的準確度等等,
: 這樣也能順便測試一下你的 compiler 水準到哪裡。
: 最內層 loop 要是有 call function 的話,
: 那個 function 內容最好也能同時被 compiler 看到,
: 這樣才有機會完成 inline;
: 另外有 if else 並不一定代表一定有 branch instruction 被產生,
: 因為有可能被 if-conversion 這項最佳化處理掉,
: 所以做 profiling feedback optimization 可能收到的效果還是有限。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.31.143
1F:推 noguest:先試profiling, 做這部份不需要改程式. 使 64.9.238.248 03/13 09:46
2F:→ noguest:用VTune或EMON等工具, 若沒基礎, 要花點時 64.9.238.248 03/13 09:49
3F:→ noguest:間去了解, 可以再慢慢學. 64.9.238.248 03/13 09:50
4F:→ noguest:而且等有profiled executable後再跑VTune 64.9.238.248 03/13 09:53
5F:→ noguest:或EMON比較好,所得的資料更有用 64.9.238.248 03/13 09:55
6F:推 brighton16:跑profiling找到效能瓶頸再著手會比較 122.122.70.50 03/13 15:02
7F:→ brighton16:有效,因很多時候是卡在被忽略的小細節 122.122.70.50 03/13 15:04
8F:→ brighton16:如果資料結構、演算法都已經拼到極限再 122.122.70.50 03/13 15:05
9F:→ brighton16:考慮用Cuda或是OpenMP,因為老闆給的時 122.122.70.50 03/13 15:05
10F:→ brighton16:間永遠不夠 ˇˇ 除非很有空,不然改架 122.122.70.50 03/13 15:06
11F:→ brighton16:構很容易會趕不上deadline 122.122.70.50 03/13 15:07
12F:→ OASYS:感謝大大們的指點!!m(_ _)m 124.218.86.239 03/17 19:10
13F:→ OASYS:請問有人知道台灣哪裡有CUDA相關的討論區呢 124.218.86.239 03/18 08:45