Existen aproximadamente 3 niveles de especialización de los equipos informáticos:
La CPU (como la de tu portátil) es la más genérica de todas. Puede hacer de todo, pero esta versatilidad tiene el precio de la lentitud y el alto consumo de energía. La CPU se programa sobre la marcha, las instrucciones vienen de la RAM. Los programas para la CPU son rápidos, baratos y fáciles de escribir y muy fáciles de cambiar.
La FPGA (que significa Field Programmable Gate Array) es el nivel medio. Como su nombre indica, puede programarse "sobre el terreno", es decir, fuera de una fábrica. La FPGA suele programarse una vez; este proceso puede describirse como la configuración de su estructura interna. Después de este proceso, se comporta como un pequeño ordenador especializado en la tarea que se ha elegido para él. Por eso puede funcionar mejor que una CPU genérica. La programación de la FPGA es muy difícil y costosa y su depuración es muy difícil.
El ASIC (que significa Circuito Integrado de Aplicación Específica) es el especialista por excelencia. Es un chip diseñado y fabricado para una y sólo una tarea, una tarea que realiza de forma extremadamente rápida y eficiente. No hay posibilidad de reprogramar el ASIC, sale de la fábrica totalmente definido y es inútil cuando su trabajo ya no es necesario. Diseñar un ASIC es algo que sólo pueden permitirse las grandes empresas y depurarlo es, bueno, prácticamente imposible.
Si piensas en "núcleos", míralo de esta manera: Las CPUs tienen 4, 6, quizás 8 grandes núcleos que pueden hacer todo. Los ASICS suelen tener miles de núcleos, pero muy pequeños, capaces de hacer una sola cosa.
Puedes mirar la comunidad de mineros de bitcoin. Ellos hacen hashes SHA256.
- CPU core i7: 0,8-1,5 M hash/s
- FPGA: 5-300M hash/s
- ASIC: 12000M de hash/s por un chip diminuto, 2000000M (sí, esos 2T) de hash/s para un dispositivo de 160 chips
Por supuesto, esos bebés ASIC cuestan casi 2.000 dólares cuando se fabrican en serie, pero eso da una idea de cómo puede enfrentarse un "todoterreno" a un especialista.
La única pregunta es: ¿puede la FPGA suponer un mayor ahorro que el coste de su diseño? Por supuesto, en lugar de ejecutarlo en UN portátil, puedes probar a ejecutarlo en 20 PCS.
1 votos
¿Has considerado ejecutar el algoritmo en una CPU de escritorio (o de servidor)? Éstas suelen ser más rápidas que las CPU de los ordenadores portátiles. (Por un factor constante, pero aún así son más rápidas).
1 votos
Piensa en utilizar la GPU para el procesamiento de redes neuronales. Las GPU tienen muchas unidades que pueden multiplicar números de coma flotante en paralelo.
0 votos
@ntoskrnl Supongo que tiene i5 o mejor cpu (4 núcleos) por lo que el rendimiento en escritorio o servidor será sólo proprocional a la velocidad de reloj. Tal vez en Xeon puede ganar un poco (20%?) el rendimiento gracias a la enorme caché y mejor ancho de banda de memoria, pero eso no es mucho.
0 votos
¿Qué CPU tienes?
0 votos
Interesante momento de las preguntas, tenemos un pregunta similar en networkengineering.SE