Esta es mi primera pregunta en este sitio, así que espero no estropear esto. : D
Intentaré ser lo más específico posible.
Lo que necesito:
-
Algo que puedo programar en C (o en un lenguaje similar a C).
-
Necesito una unidad de procesamiento que se pueda conectar en una matriz para cálculos masivamente paralelos.
-
La unidad debe tener una arquitectura múltiple / multi-core (RISC de 32 bits es lo suficientemente buena) y los núcleos y las unidades deben poder comunicarse entre sí.
-
Todas las unidades deben ser programables simultáneamente. No quiero programar cada uno de ellos a mano.
-
Cada núcleo ejecutará el mismo algoritmo simple, pero con un nonce diferente.
-
La velocidad de los núcleos dividida por el precio debe ser lo más alta posible.
-
La matriz resultante debería poder superar a una computadora de escritorio estándar en varios órdenes de magnitud con respecto a los cálculos altamente paralelos.
-
La solución no debería ser demasiado complicada.
-
Realmente no me importa la eficiencia energética. Mientras no requiera cantidades ridículas de energía (como una planta de energía nuclear privada por CPU), no debería ser un problema.
Lo necesito para:
-
Redes neuronales & varias otras implementaciones de Machine Learning
-
Encontrar números primos, así como otros problemas relacionados con las matemáticas (como la conjetura de Collatz, etc.)
-
Hashing & otras aplicaciones de fuerza bruta
-
Entre otros programas paralelos.
Lo que he encontrado hasta ahora:
Computación acelerada por GPU:
Esta solución parece ser la mejor que he encontrado hasta ahora. Utilizando CUDA & OpenCL I puede usar los sombreadores de hardware de una GPU como núcleos individuales. Así es como se realizó la minería de Bitcoin en el pasado.
La ventaja de este enfoque es que puedo tener cientos de subprocesos ejecutándose simultáneamente. También hay un montón de soporte en línea utilizando este método.
La desventaja de este enfoque es que los sombreadores de GPU son terribles en las ramas condicionales, lo que me impide escribir cualquier programa de este tipo con muchas condiciones anidadas.chips XMOS
Uno de los primeros circuitos integrados de familia con los que me encontré que parecía apropiado era la gama de productos xCORE. Son microprocesadores que son relativamente baratos (~ 20 USD cada uno) y pueden tener hasta 32 núcleos.
Lo que es un poco desagradable es el hecho de que la única indicación de la velocidad está en MIPS. Mirando una guía de conexión, utilizan un cristal externo de 25MHz. Además, no hay demasiada asistencia en línea.La Junta de Parallella
Esta es una pequeña tabla muy interesante que se comercializa como una "supercomputadora del tamaño de una tarjeta de crédito". Ejecuta un derivado de Ubuntu y tiene un coprocesador Epiphany-III con 16 núcleos (creo). Dicen que puede ejecutar 90 GFLOPS.
El inconveniente es que necesito más núcleos.Epiphany-IV (E64G401)
Este microprocesador parece perfecto. Está fabricado por la misma compañía que la placa Parallella y cuenta con 64 núcleos RISC con una friolera de 800Mhz.
El único inconveniente es que este IC se interrumpe. : '(Procesadores Kalray y tarjetas PCIe
De nuevo, una solución muy interesante para el cómputo paralelo, donde los procesadores tienen hasta 256 cores. Kalray también ofrece capacitación en el uso de sus productos.
La desventaja es que uno tiene que solicitar un precio y parece que uno solo puede comprar estos componentes directamente de ellos. También me parece que están más enfocados en las redes.FPGAs
Los FPGA también se han considerado, ya que pueden realizar algoritmos completos en ciclos de reloj único.
Sin embargo, lo que estoy buscando es algo que también puede realizar algoritmos muy grandes, mientras que los FPGA no tienen tantos elementos lógicos.
Budgetwise soy muy flexible. Así que digamos 10'000USD.
Preferiría diseñar mi propia PCB de matriz informática con un ic que ustedes recomiendan, sin embargo, estoy abierto a otras soluciones. Tal vez ya haya encontrado la mejor solución pero todavía no la conozco. ¿Qué piensan ustedes, señoras y señores?
¡Muchas gracias de antemano!
- Linus
Registro de cambios:
-
Agregó que me gustaría programar en C
-
FPGAs añadidos
-
Agregó que no me importa el consumo de energía
-
Agregué que preferiría hacer mi propia pcb
-
Presupuesto agregado de 10 000 usd