OK, una nueva respuesta a una vieja pregunta pero aún más relevante ahora. La pregunta que está haciendo tiene que ver con precisión finita, normalmente el dominio del análisis de señales y las matemáticas experimentales.
Los flotadores de doble precisión (DP) nos permiten pretender que no existen problemas de precisión finita, al igual que lo hacemos con la mayoría de los problemas matemáticos del mundo real. En matemáticas experimentales no hay pretensiones.
Los flotadores de precisión simple (SP) nos obligan a considerar el ruido de cuantización. Si nuestros modelos de aprendizaje automático rechazan inherentemente el ruido, como las redes neuronales (NN), las redes convolucionales (CNN), las redes residuales (ResN), etc., entonces SP generalmente da resultados similares a DP.
Los flotadores de media precisión (HP) (ahora compatibles con el kit de herramientas cuda 7.5) requieren que se consideren los efectos de cuantificación (ruido y redondeo). Lo más probable es que pronto veamos flotantes de HP en los kits de herramientas de aprendizaje automático comunes.
Hay trabajo reciente para crear cálculos de menor precisión en flotantes, así como números de precisión fijos. El redondeo estocástico ha permitido que la convergencia proceda con CNN mientras que la solución diverge sin ella. Estos documentos lo ayudarán a mejorar su comprensión de los problemas con el uso de números de precisión finita en el aprendizaje automático.
Para responder a sus preguntas:
SP no es tan malo. Como señala, es el doble de rápido, pero también le permite poner más capas en la memoria. Una ventaja adicional es ahorrar gastos generales para obtener datos dentro y fuera de la GPU. Los cálculos más rápidos y la sobrecarga más baja resultan en tiempos de convergencia más bajos. Dicho esto, HP, para algunos problemas, será mejor en algunas partes de la red y no en otras.
- Me parece que muchos de los kits de herramientas de aprendizaje automático manejan SP y DP. Quizás alguien más con una gama más amplia de experiencia con los juegos de herramientas agregará su nickle.
- Python admitirá lo que admite el kit de herramientas de gpu. No desea utilizar los tipos de datos de Python porque entonces ejecutará un script interpretado en la CPU.
Tenga en cuenta que la tendencia en las redes neuronales ahora es ir con capas muy profundas, con ejecuciones de más de unos días comunes en los clústeres de gpu más rápidos.