iphone cocoa-touch floating-point ieee-754

Doble vs flotar en el iPhone



cocoa-touch floating-point (3)

El iPhone puede hacer aritmética de precisión simple y doble en hardware. En el 1176 (iPhone y iPhone3G originales), operan aproximadamente a la misma velocidad, aunque puede incluir más datos de precisión simple en las memorias caché. En el Cortex-A8 (iPhone3GS, iPhone4 y iPad), la aritmética de precisión simple se realiza en la unidad NEON en lugar de VFP, y es sustancialmente más rápida.

Asegúrese de desactivar el modo pulgar en la configuración de compilación para armv6 si está realizando un cálculo intensivo de punto flotante.

Acabo de escuchar que el iPhone no puede duplicarse de forma nativa, lo que los hace mucho más lentos que el flotador normal.

¿Es esto cierto? ¿Evidencia?

Estoy muy interesado en el tema porque mi programa necesita cálculos de alta precisión y tendré que comprometerme con la velocidad.


El manual ARM1176JZF-S dice que admite números de punto flotante de doble precisión. Debes estar en buena forma. Aquí hay un link a la documentación en PDF. Los iPhones posteriores son chips Cortex, y ciertamente no deberían ser menos capaces.


Esta presentación de diapositivas da una idea de por qué no hay un buen punto flotante y por qué hay (la unidad de punto flotante vector). Aparentemente, es importante que verifique el "modo pulgar" que influye en si el soporte de punto flotante está activado o no. Esto no siempre es una mejora. Muestra cómo encontrar las instrucciones correctas en el código de ensamblaje.

También depende de qué versión del teléfono desea ejecutar su código. El más reciente parece "más capaz" al hacer matemáticas de coma flotante.

EDIT: aquí hay una lectura interesante sobre las optimizaciones de punto flotante en el ARM con VFP y NEON SSE.