Entonces, ¿el RPi tiene soporte de flotación dura?
Sí, específicamente (en el Pi original) VFPv2.
Si es así, ¿es más rápido ese flotador suave?
Sí
Hay algunos artículos que dicen que es mejor usar algoritmos de flotación suave en dispositivos ARM, porque muy pocos chips ARM tienen coprocesadores de flotación dura.
En 2007, el punto flotante en el brazo era un desastre, muchos chips no tenían FPU en absoluto. Aquellos que sí tenían a menudo tenían uno de varios diferentes e incompatibles. El peor brazo de Debian (una de las principales distribuciones de Linux de brazo en ese momento) fue construido por razones históricas para una FPU llamada FPA que muy pocos chips tenían y dependía principalmente de la emulación del kernel para punto flotante (el punto flotante del software es lento, el punto flotante emulado por el núcleo es más lento) Creo que la situación en otras distribuciones fue similar, pero no soy positivo al respecto.
Dado el desorden en el momento, se tomó la decisión de que la mejor opción era hacer un puerto EABI utilizando la versión de línea de base (flotante suave) de EABI. Este ABI fue diseñado de tal manera que el código podría usar el ABI de línea de base mientras que opcionalmente usa la FPU. La idea en ese momento era que el núcleo de la distribución se construiría usando un punto flotante de software y luego el código específico que utilizaba el punto flotante podría construirse con punto flotante de hardware pero aún usando la línea de base (flotación suave) ABI. Este puerto era conocido en el mundo de Debian como "armel".
Sin embargo, el bit "paquetes específicos creados con hardware de coma flotante" realmente no funcionó. En la práctica, pocos paquetes se molestaron en hacer tal cosa y también hubo una sobrecarga de valores aleatorios entre registros enteros y de coma flotante.
Un avance rápido hasta 2011 y la situación había cambiado considerablemente. Arm había estado presionando agresivamente a VFP y la gran mayoría de los "procesadores de aplicaciones" (el tipo de cosas que se encuentran en teléfonos móviles y similares) lo habían adoptado. Varias de las principales distribuciones de Linux (al menos Debian, Ubuntu y Fedora inicialmente, más tarde) optaron por hacer puertos utilizando punto flotante de hardware y el ABI de flotación rígida. Desafortunadamente para el Pi, estas distribuciones (que se estaban completando en el momento en que se lanzó el Pi) generalmente establecieron sus requisitos mínimos de hardware como ARMv7 con VFPv3_d16 para que no se ejecuten en el Pi.
Entonces, los fanáticos de Pi comenzaron a trabajar en variantes de distribución específicas de pi que usaban punto flotante de hardware y el ABI de flotación dura pero se construyeron con configuraciones de compilador que se ejecutarían en el pi.