2010-05-22 12 views
6

Me interesa el costo de tiempo en una CPU de escritorio moderna de algunas operaciones de coma flotante para optimizar una evaluación matemática. En particular, estoy interesado en la comparación entre operaciones complejas como exp, log y operación simple como +, *, /.Costo de operaciones flotantes de CPU

He intentado buscar esta información, pero no he podido encontrar una fuente.

¿Cuál es el costo de las operaciones de coma flotante?

+0

¿Por qué no escribir un bucle para hacer 10,000 '*' y 10,000 'exp' y recopilar los datos? –

+0

¿Qué CPU? familia x86? ¿32 bits o 64 bits? –

+0

@Peter: x86 64 bit –

Respuesta

2

Las CPU modernas funcionarán con flotación + y - en unos pocos relojes. Muchos lo harán * con un pequeño número de relojes, pero más que + y -. La división suele ser considerablemente más lenta que *. Los trascendentales son más lentos que Divide.

Es probable que pueda obtener algunas ideas de velocidad buscando en los manuales de optimización de Intel.

+1

sí, esto es lo que necesito: página C-25 del manual de optimización de Intel –

+0

¿Por qué puedo encontrar instrucciones para sin/cos/tan pero no para log/exp? –

+0

Están ahí en el conjunto de instrucciones de Intel. No estoy seguro de que los calcule directamente; IIRC, calcula algún resultado intermedio a partir del cual se pueden calcular con bastante facilidad. Lea detenidamente las instrucciones de FP establecidas. –