2010-05-22 13 views
6

Matematiksel bir değerlendirmeyi optimize etmek için bazı kayan nokta işlemlerinin modern masaüstü CPU'larında zaman maliyetinde ilginçim. Özellikle, exp, log gibi karmaşık işlemler ile +, *, / gibi basit işlemler arasındaki karşılaştırmaya ilgi duyuyorum.CPU yüzer işlem maliyeti

Bu bilgiyi aramayı denedim, ancak bir kaynak bulamadım.

Kayan nokta işlemlerinin maliyeti nedir?

+0

Neden 10.000 '*' ve 10.000 'exp' yapmak için bir döngü yazmıyor ve verileri topluyoruz? –

+0

Hangi CPU? x86 ailesi? 32 bit mi, 64 bit mi? –

+0

@Peter: x86 64 bit –

cevap

2

Modern CPU'lar yüzer + ve - birkaç saat içinde çalışır. Birçoğu az sayıda saatle *, ama + ve - 'den fazla olacak. Bölme genellikle * 'den oldukça yavaştır. Transandantaller Bölünme'den daha yavaştır.

Intel optimizasyon kılavuzlarına bakarak büyük olasılıkla bazı hız fikirleri alabilirsiniz.

+1

evet, buna ihtiyacım var: Intel optimizasyon kılavuzu sayfa C-25 –

+0

Neden günlüğü/cos/tan için talimatı bulabilirim ama log/exp için değil? –

+0

Intel komut setinde bulunuyorlar. Bunları doğrudan hesapladığı konusunda emin değilim; IIRC, bunların kolayca hesaplanabileceği bazı ara sonuçları hesaplar. FP komut setini dikkatlice okuyun. –