¿Vale la pena el desarrollo de hardware integrado de aprendizaje automático?

Cuando se opera a gran escala (como la escala de Google), las operaciones de capacitación e inferencia son significativas ya que el aprendizaje automático se utiliza en docenas de sus aplicaciones. Por lo tanto, los costos de capacitación e inferencia, a menudo medidos como ejemplos / segundo / julio o ejemplos / segundo / $ es una métrica extremadamente eficiente para optimizar, y una implementación de hardware eficiente puede generar millones de dólares en ahorros inmediatos.

El hardware especializado, como los ASIC, proporciona una implementación eficiente de algoritmos de aprendizaje automático. Esto se debe a que, a diferencia de una CPU, no es necesario implementar hardware de almacenamiento en caché complejo, admitir docenas de extensiones heredadas y otro hardware no esencial que perjudica la eficiencia energética.

Sin embargo, una desventaja en su construcción es que requieren millones de dólares (y una gran experiencia) para fabricarlos. La ley de Moore ha asegurado que la fabricación de procesadores de última generación esté fuera del alcance de la mayoría de las nuevas empresas. Además, si aparece un nuevo algoritmo o una implementación más eficiente, el ASIC ya no es el más avanzado e incluso puede ser menos eficiente que las CPU. Por lo general, la ventaja de los ASIC se mantiene durante ~ 2 años antes de que los mejores algoritmos o modelos de CPU los eclipsen.

Sin embargo, recientemente las CPU no se están volviendo más rápidas / más eficientes como solían hacerlo en los años 90/00. Además, la implementación de convoluciones de eficiencia energética y otras operaciones matriciales básicas puede proporcionar importantes ahorros de energía sobre las CPU / GPU que hacen que todo este ejercicio valga la pena en el esquema actual de las cosas.

¡Por supuesto que es! El hecho de que esté hablando de hardware incorporado es en sí mismo una razón para hacer ese trabajo.

El caso para la ejecución de algoritmos Ml en la nube es bien conocido. Sin embargo, también significa que necesita un dispositivo (por ejemplo, su teléfono inteligente o su PC) que se conecta a la nube. Pero, ¿todos los dispositivos necesitan una conexión a la nube? No. Pero si uno quisiera ejecutar algoritmos de ML (post entrenamiento) en dispositivos que no tienen conectividad con un servidor en la nube, entonces uno tiene que hacer la implementación en ese dispositivo. Piense en un medidor eléctrico inteligente. Existe la posibilidad de que un usuario o un proveedor no desee que se conecte directamente a un servidor remoto debido a problemas relacionados con la seguridad y la privacidad.

La conexión a la nube viene con problemas relacionados con la seguridad, la privacidad, el rendimiento y el costo adicional. Y no todas las aplicaciones o casos de uso necesitarían esta conexión. Por lo tanto, habrá interés en desarrollar una implementación ML basada en hardware embebido.

More Interesting

Soy un ingeniero electrónico que se graduó recientemente y obtuve un trabajo como ingeniero de sistemas integrados donde tengo que trabajar en la programación C. ¿Es un buen trabajo para mí o no? ¿Debería continuarlo?

¿Cuáles son las ventajas y desventajas de utilizar una emulación EEPROM real versus una emulación EEPROM en flash en un microcontrolador?

¿Cuál es la diferencia entre hacer un sistema embebido y simplemente programar periféricos básicos (temporizador, SPI, I2C, UART, etc.)?

¿Cuál es el futuro de Linux incorporado?

¿Qué sucede cuando no usamos la palabra clave 'volátil' para definir registros de hardware en la programación de sistemas integrados?

¿Un gusto por Arduino se traduce en una carrera en sistemas integrados?

¿Cuál es el significado de debounce en el microcontrolador 8051?

¿Vale la pena el precio de Industruino por tener Arduino incrustado en un gabinete de riel DIN estándar o se puede hacer más barato y mejor?

¿Puede el titular de un diploma ECE convertirse en ingeniero de sistemas integrados también?

¿Cuál es la diferencia básica entre un 8051 y un microcontrolador Arduino?

¿Dónde debo comenzar a aprender las pruebas unitarias para software embebido?

¿Cómo comenzar con 8051 para hacer mi primer proyecto? Cómo hacer un diagrama de circuito EXTERNO que se requiere para el funcionamiento del microcontrolador

¿Qué carrera es mejor para comenzar, incrustado o desarrollador Java?

Estoy persiguiendo BTech en ingeniería electrónica y de comunicación. Estoy buscando el mejor instituto para hacer entrenamiento de verano en sistemas integrados. ¿Cuál es el mejor instituto en Delhi para la capacitación en sistemas integrados?

¿En qué tipo de aplicaciones trabajan los programadores que trabajan con C ++ / C o sistemas integrados dado que gran parte del software ahora está basado en la web?