作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 怎麼看高階語言指令使用的 cycle time?
時間Mon Dec 6 15:54:22 2010
※ 引述《tropical72 (藍影)》之銘言:
: 本身是用 C language, 近期一些特殊需求, 開始翻 paper,
: 將一些數學函式 - 三角,反三角.幕次..etc 想寫得較快,
: 目前是用高精度計時器去跑1000次計時,但有時出來效果很不穩
: ( 有時用 math.h 比較快,有時用我寫的比較快)
: 後來查一些網頁,大多是從編出來的組語去分析 cycle time.
: 謝謝各位的不吝指教,感激不盡!
最近一直在研究 bitwise, math.h 加速等問題
歷經了3天的研究,
最後發現,原來線上都有提供一些 free 的 library,
針對 math.h 在做改善
(也包含提供一些裡面原本沒有的函式, 如 gamma)
雖最後不是用自己寫的 (去測別人寫的和 math.h 裡面的)
不過數值分析的東西倒是看了不少 (power series, nonliear root)
最後附上查閱之相關網址資料供日後有類似需求之版友參考
(1) Bit Twiddling Hacks
http://www-graphics.stanford.edu/~seander/bithacks.html
這篇文章在探討 bitwise 操作,裡面有提出許多平常運算加速之方式,
但建議要用的話還是包成 function 或 marco 再使用, 不然會看不懂。
(2) Fast and accurate sine/cosine
http://www.devmaster.net/forums/showthread.php?t=5784
這篇原po主要討論 sin/cos 之加速,裡面的回文內容我覺得相當充實,
其中 1F-Nick 說明包含了以 taylor series 做分析。
(22F-tbp 是用什麼指令我又看不懂了..)
另 29F-Groove 也提供了他用的數學函式連結 - OpenGL
(Open GL 裡的數學函式會比 math.h 快嗎?會的話可以只裝裡面的數學函式嗎?)
其餘的怕流水帳過長, 就不一一列表了。
(3) A Guide to Approximations
http://www.ganssle.com/approx/approx.pdf
這篇文章我覺得寫得相當淺顯易懂,
適合初學者看, 裡面也有分析精度之問題。
(4) fdlibm
http://www.netlib.org/fdlibm/
這裡幾乎包含所有 math.h 的實做, 甚至優化
最後我幾乎只看這裡
(5) 其它相關文獻介紹
再列二個我覺得質量還不錯的研究
Elementary Functions and Calculators
http://0rz.tw/35BdF (這個太長不得不用縮的,pdf檔)
A Fast, Vectorizable Algorithm for Producing
Single-Precision Sine-Cosine Pairs
http://arxiv.org/PS_cache/cs/pdf/0406/0406049v1.pdf
最後奉上十二萬分謝意
感謝 purpose 與 ericinttu 協助
感激不盡。
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
推 purpose:你一下就找到這麼多資料,也蠻厲害的。 12/06 15:56
→ tropical72:是您方向給得好 :) 12/06 15:57
※ 編輯: tropical72 來自: 180.177.76.142 (12/06 15:58)
推 ericinttu:變高手了 XD 12/06 17:02
推 cutecpu:推 12/06 17:32
推 xatier:push! 12/06 19:29