[英]Performance of different math functions in x86?
我正在寫一個3D碰撞,並想知道基本數學函數的性能差異,如+ - * / sqrt pwr三角函數,如sin cos tan arcsin ..
我聽說這取決於許多其他事情,所以我只是想大致了解哪一個更慢,需要避免,同時找到解決問題的不同方法。 另外,我想知道差異的順序和大小
謝謝
編輯:我在VC ++中為x86編寫。 但是,其他架構和總體情況的知識也很好。 主要是我在單個浮點計算實時應用。
問題是一些算法需要sqrt或三角函數,但我可以通過其他方法繞過它們。 每個人都有自己的進步,我想知道足以做出權衡。 我想要一般知識來解決我自己的問題,做了一個谷歌,但沒有找到任何所以請讓它回答
講得非常廣泛,並概括了最近的常見硬件:
sin
, cos
, exp
, log
等)會有很大的不同,具體取決於您使用的數學庫實現以及硬件。 在(比方說)電流i7上,每隔約20個周期的操作和每~200個周期的操作之間的某種情況是典型的,這取決於實現的質量和被調用的特定功能。 粗略的想法: +, -
< *
< /
< sqrt
< sin, cos, etc
PS。 在最近的英特爾架構上:
ADDSD / SUBSD - 3個周期延遲,1個周期吞吐量
MULSD - 6-7周期延遲,2個周期吞吐量
DIVSD - 38-39周期延遲,38-39周期吞吐量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.