Re: [問題] 追求效能下,在Do Loop下用IF敘述?
※ 引述《OASYS (打倒萬惡ETS)》之銘言:
: 演算法的部份,小弟已經盡量優化了,有時覺得要寫科學計算程式不若寫商用軟體
: 程式碼已經快精簡到像密碼一樣只有我看得懂...(可能過一兩個月連我也要想半天
: 才會看得懂..XD),小弟尚有平行化處理..甚至把程式放到Ramdisk跑都用上了...
: 為了快一點什麼都做得出來..@@
: 不知道有沒有類似的資訊,書或網頁告訴程式設計師寫程式的一些觀念...
: 如同樣功能的程式用不同的寫法之差別...
: 再次感謝各位大大的解答..
如果演算法方面已經優化的差不多的話,可以從 compiler 的參數下手。假如
你的程式還沒有使用 profiling 來最佳化,一定要先試這部份。根據經驗,
最好的情況是可以讓執行速度快 30%,當然 profiling 對不同的程式和不同的
平台的幫助不一定,但一般對越複雜且計算越多的程式幫助比較大。用 profiling
可以明顯看到對 branch prediction 和 CPI 有幫助。
icc 的話,profiling 的 flag 是 -prof_gen, -prof_use, 和 -prof_dir,其
他的 compiler 大多也有類似的 flag。要注意一點就是用來產生 feedback
的 workload,越接近實際要跑的計算對效率幫助越大,跑個半小時到一小時就
夠了,收集到的資料已夠讓 compiler 做很多的最佳化。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 64.9.238.248
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章