¿Las GPU se usan solo para entrenar algoritmos de aprendizaje automático?

Hay 2 formas de interpretar esta pregunta, así que escribiré una respuesta para ambas.

  • Las GPU son dispositivos de hardware multipropósito optimizados para tareas con muchos subprocesos paralelos. Las aplicaciones más comunes son los juegos (donde hay una serie de cálculos poligonales paralelos para renderizar los gráficos) y ahora el aprendizaje profundo (donde las redes neuronales se benefician enormemente de los hilos paralelos de las GPU)
  • Las GPU no son la única herramienta de hardware utilizada para entrenar modelos de aprendizaje automático. De hecho, ¡puedes usar cualquier hardware para entrenarlos! La parte más difícil hoy en día para implementar el aprendizaje automático es configurar las dependencias y el hardware, pero resulta que la mayoría de las bibliotecas admiten CPU y no requieren soporte de GPU. Y para algoritmos que no requieren cálculos complejos, es decir, la mayoría del aprendizaje automático (excluyendo el aprendizaje profundo / aprendizaje de refuerzo), esto funciona bastante bien.

Si desea ejecutar un modelo de aprendizaje automático usted mismo, puede hacerlo con Datmo. Puede elegir un modelo, clonarlo y ejecutar una tarea en su máquina sin configurar las dependencias, sin importar los recursos que tenga su máquina.

$ datmo clone shabazp / numerai-model
La tarea $ datmo ejecuta “python example_model.py”

El aprendizaje automático se puede hacer en cualquier lugar. Tener una GPU no es un requisito.

Espero que esto ayude 🙂

Depende de su aplicación y también de su código.

Usamos GPU para acelerar el proceso de cálculo. Entonces lo usamos cuando el cálculo es computacionalmente intensivo. Debido a que el entrenamiento de una red necesita iterar en sus datos varias veces, normalmente es más intensivo en cómputo que usar la red en el modo de ejecución (en sus palabras). Por lo tanto, es normal entrenar su modelo con GPU y ejecutarlo con CPU.

Pero debes tener en cuenta dos cosas:

No todas las bibliotecas y códigos admiten GPU y CPU. Deberías tener eso en mente.

Además, si planea ejecutar su algoritmo como algún tipo de servicio que los usuarios pueden usar, dependiendo de la cantidad de usuarios, es posible que deba ejecutar su algoritmo en la GPU en producción porque (nuevamente) es computacionalmente intensivo (debido a la gran cantidad de usuarios )

Una GPU es solo una computadora relativamente simple, pero masivamente paralela.

Puede ejecutar todo tipo de programas, y si son susceptibles de ejecutarse en paralelo masivo, generalmente los ejecutarán mucho más rápido que la CPU de una computadora normal.

La ejecución de una red neuronal (ya sea al aprender o al aplicar la red) se puede hacer muy bien en una GPU.

Por supuesto, las GPU se diseñaron originalmente (como su nombre: Unidad de procesamiento gráfico – implica) para hacer gráficos … específicamente, gráficos 3D. Con mucho, su mayor uso es dibujar el video 3D en juegos de computadora.

Estos otros usos son casi incidentales a eso.

En un mundo ideal, las personas que trabajan en aplicaciones de aprendizaje automático crearían chips informáticos paralelos masivos que serían más adecuados para el aprendizaje automático, pero el costo de diseñarlos y fabricarlos sería enorme.

Pero debido a que hay una GPU en cada teléfono, PC, Xbox y Playstation, la tecnología es muy barata. Entonces, en términos de inversión, la gente de aprendizaje automático está mejor adaptando la GPU a sus necesidades que inventando algo que podría ser tres veces más rápido, pero que costaría 100 veces más.

En un mundo de paralelismo masivo, tener 100 veces más GPU es mucho MUCHO mejor que tener un chip tres veces más rápido.

Las economías de escala lo son todo.

Sin embargo, si el aprendizaje automático realmente despega, podríamos encontrar que suficientes personas necesitan la tecnología en sus teléfonos, PC y consolas de videojuegos para que valga la pena diseñar chips personalizados para ese propósito.