2010-05-22 2 views
6

Sono interessante nel tempo che costa a una moderna CPU desktop di alcune operazioni in virgola mobile per ottimizzare una valutazione matematica. In particolare, sono interessato al confronto tra operazioni complesse come exp, log e operazioni semplici come +, *, /.Costo delle operazioni mobili della CPU

Ho cercato di cercare queste informazioni, ma non ho trovato una fonte.

Qual è il costo delle operazioni in virgola mobile?

+0

Perché non limitarsi a scrivere un ciclo per eseguire 10.000 '*' e 10.000 'exp' e raccogliere i dati? –

+0

Che CPU? famiglia x86? 32 bit o 64 bit? –

+0

@Peter: x86 64 bit –

risposta

2

Le CPU moderne effettueranno il float + e - in alcuni orologi. Molti lo faranno * con un piccolo numero di orologi, ma più di + e -. Dividere è in genere considerevolmente più lento di *. I trascendentali sono più lenti di Dividere.

È probabile che alcune idee di velocità vengano visualizzate nei manuali di ottimizzazione Intel.

+1

sì, questo è quello che mi serve: pagina C-25 del manuale di ottimizzazione Intel –

+0

Perché posso trovare istruzioni per sin/cos/tan ma non per log/exp? –

+0

Sono presenti nel set di istruzioni Intel. Non sono sicuro che li calcoli direttamente; IIRC, calcola alcuni risultati intermedi dai quali possono essere calcolati abbastanza facilmente. Leggere attentamente le istruzioni FP. –