Estoy ejecutando una red neuronal de aprendizaje profundo que ha sido entrenada por una GPU. Ahora quiero implementar esto en varios hosts para inferencia. La pregunta es ¿cuáles son las condiciones para decidir si debo usar GPU o CPU para inferencia?
Agregar más detalles de los comentarios a continuación.
Soy nuevo en esto, por lo que se agradece la orientación.
Memoria : GPU es K80
Marco : Cuda y cuDNN
Tamaño de datos por cargas de trabajo : 20G
Calcular nodos para consumir : uno por trabajo, aunque quisiera considerar una opción de escala
Costo : puedo pagar una opción de GPU si las razones tienen sentido
Implementación : se ejecuta en servidores bare metal alojados, no en la nube.
En este momento estoy corriendo en la CPU simplemente porque la aplicación funciona bien. Pero fuera de esa razón, no estoy seguro de por qué uno incluso consideraría GPU.
fuente
Respuestas:
@Dan @SmallChess, no estoy completamente de acuerdo. Es cierto que para el entrenamiento, gran parte de la paralalización puede ser explotada por las GPU, lo que resulta en un entrenamiento mucho más rápido. Por inferencia, esta paralización puede ser mucho menor, sin embargo, las CNN aún obtendrán una ventaja de esto, lo que resultará en una inferencia más rápida. Ahora solo tiene que preguntarse: ¿es importante una inferencia más rápida? ¿Quiero estas dependencias adicionales (una buena GPU, los archivos correctos instalados, etc.)?
Si la velocidad no es un problema, elige la CPU. Sin embargo, tenga en cuenta que las GPU pueden hacer que sea un orden de magnitud más rápido en mi experiencia.
fuente
Ejecutar inferencia en una GPU en lugar de en una CPU te dará casi la misma velocidad que en el entrenamiento, menos un poco a la sobrecarga de memoria.
Sin embargo, como dijiste, la aplicación funciona bien en la CPU. Si llega al punto en que la velocidad de inferencia es un cuello de botella en la aplicación, la actualización a una GPU aliviará ese cuello de botella.
fuente
Solo usaría GPU para la capacitación porque el aprendizaje profundo requiere un cálculo masivo para llegar a una solución óptima. Sin embargo, no necesita máquinas GPU para la implementación .
Tomemos como ejemplo el nuevo iPhone X de Apple. El nuevo iPhone X tiene un algoritmo avanzado de aprendizaje automático para la detección práctica. Los empleados de Apple deben tener un grupo de máquinas para capacitación y validación. Pero su iPhone X no necesita una GPU solo para ejecutar el modelo.
fuente