→ yauhh:你的意思是說把除法換成一些乘法和指數運算嗎? 05/12 13:12
→ yauhh:不過乘法的時脈也很多. 05/12 13:13
→ stupid0319:我只是幫purpose大補充一下他要表達的內容@@ 05/12 13:17
推 purpose:除法換成 multiply shift,在 x86 下是比除法快 05/12 13:19
推 littleshan:現代的cpu乘法其實很快喔 latency大約3~4個cycle而已 05/12 23:00
→ littleshan:相較之下除法至少26個cycle起跳 05/12 23:02
推 purpose:Intel 的 Optimization Reference Manual 附錄 C 表 C-13 05/12 23:36
→ purpose:是寫 IMUL 的 Latency 為 15-18 耶,沒這麼快吧?? 05/12 23:37
推 yauhh:那就可以將一個除法替換為少於七倍的乘法 05/13 00:51
推 purpose:好像跟多核心有關?總之謝謝 littleshan 大解惑,感謝 05/13 03:06
推 wowtiger:purpose 請不要拿 Pentium 4 這史上最爛的 CPU 做例子啦 05/13 11:25
→ wowtiger:然後呢 intel 和 AMD 官方就有提供 Latency 表了 05/13 11:26
→ wowtiger:而且新的 CPU 都會列出來 05/13 11:27
→ wowtiger:不過我個人對於 AMD 的 FP 轉 INT 還是有疑問 05/13 11:28
→ wowtiger:Latency 非常不穩定 會莫名其妙飆非常高 05/13 11:28
推 purpose:小弟很外行,倒不是特地挑舊的 CPU 來講,只是 google 得 05/13 14:06
→ purpose:知可以從 Intel 的那本 Optimization 手冊查到,不知道最 05/13 14:07
→ purpose:新的資訊應該要到哪查,有人可告知嗎?謝謝 wow 大指正 05/13 14:08
→ purpose:google 查 instruction latency site:intel.com 沒找到 05/13 14:09
→ purpose:挑單一的 CPU 看 Datasheets, Design guides 的文件也沒有 05/13 14:10
推 wowtiger:因為你查錯了 XD 而且了解 CPU 應該是從官方找資料的阿 05/13 20:23
→ wowtiger:噗 看來是一樣的 但是你還是得知道 CPUID 阿 05/13 20:25
→ wowtiger:0F2x 是 Netburst 阿 其餘都是 06xx 正規 Pentium 2 血統 05/13 20:26
推 wowtiger:真是抱歉阿 兩三年沒去看 Intel 的 PDF 都忘在長怎樣了 05/13 20:35
推 purpose:wow 大小弟悟了,感謝 05/13 20:37
→ purpose:之前太心急看到 Table C-16 以為就查完了,不知道往下拉 05/13 20:38
→ purpose:三頁後又有個 Table C-16a 裡面有新版 CPU 的 IMUL 資料 05/13 20:39