作者 kuoyipong (petohtalrayn)標題 Re: [閒聊] 老遊戲的變態程式碼時間 Wed Jul 23 11:33:59 2025
閒聊
https://youtu.be/xyteUTr3wpc?si=YkbDeoBcABXpUqm9
有人實測這個演算法跟傳統取平方根的速度到底差多少
就用電腦跑1到100億的平方根
結果
一般取平方根的演算法花了80秒
這個快速取平方根的演算法花了45秒
確實蠻快的
但現在幾乎沒有人在用這個演算法了,
原因是有更快的:rsqrt
用這個指令演算一樣的1到100億的平方根只要7.5秒
雖然越快就誤差越大就是了,rsqrt大概差2%,比起上面的快速取平方根誤差1%以下略多
因此rsqrt的結果有時候需要用牛頓法再削減誤差
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.157.140 (臺灣)
※ 作者: kuoyipong 2025-07-23 11:33:59
※ 文章代碼(AID): #1eW5Wfgu (C_Chat)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1753241641.A.AB8.html
※ 同主題文章:
Re: [閒聊] 老遊戲的變態程式碼
07-23 11:33 kuoyipong
推 yamis: 那rsqrt又是基於什麼原理能這麼快1F 07/23 11:36
推 hh123yaya: 現在好像滿多演算法都有在進化 不過沒碰底層也不了解3F 07/23 11:40
推 BApple: 效能不夠才需要優化,現在都快到硬幹了,除非更複雜的問題4F 07/23 11:42
→ p3398530: 因為人家那是指令集直接提供給你的 等於他直接用硬體算不管你怎麼快都沒辦法快過他5F 07/23 11:48
推 ltytw: rsqrt有印象 好像是sse裡面的7F 07/23 11:50
推 orze04: 這兩個是一樣的東西
但是rsqrt是直接硬體化寫在CPU指令集裡面
你演算法再怎優化,人家一樣的邏輯寫在指令集內一定比你快8F 07/23 12:02
--