U16 toma más tiempo que mi U32 para la operación sinusoidal

0

Estaba realizando una monitorización del rendimiento para mi función sinusoidal y, curiosamente, cuando uso la variable a en el seno como tipos sin signo de 16 bits, se necesita más tiempo para calcular que cuando uso la misma variable que un 32 sin signo. ¿Podría ser esto porque dentro del algoritmo sinusoidal en math.h / .c toma más tiempo escribir el tipo de 16 bits?

Así es como se ve mi operación, rendimiento_inicio, para (50 veces) {a = pecado (a * 3.14 / 180); } Stop_performance_and_read valores

Mi unidad de monitoreo de rendimiento funciona bien, es solo que no entiendo por qué el resultado es extraño.

    

1 respuesta

2

No dices en qué procesador se está ejecutando. Si se trata de una máquina de 32 bits, lo más probable es que los cálculos se realicen con valores de 32 bits, y la conversión a / desde 16 bits requiere ciclos adicionales.

Una vez hice una prueba de referencia en una estación de trabajo de IBM que tenía hardware de punto flotante de doble precisión. Los cálculos de punto flotante de doble precisión (64 bits) tardaron más de 32 bits.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas