Pregunta

Acabo de escuchar que el iPhone no se puede duplicar 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.

¿Fue útil?

Solución

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úrate de desactivar el modo pulgar en la configuración de compilación para armv6 si estás realizando un cálculo intensivo de punto flotante.

Otros consejos

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). Al parecer, es importante que compruebes el modo " pulgar " lo 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 la versión del teléfono que desea ejecutar su código. El más reciente parece " más capaz " en hacer matemática de punto flotante.

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

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top