Multiplicación de matriz muy grande en FPGA

-1

Estoy trabajando con redes neuronales convolucionales y he escrito un código para hacer la convolución de dos matrices 3x3. Este es mi código: enlace Ahora quiero hacer la convolución de dos matrices: 400x400 y 3x3. Eso es 160,000 elementos x 9 elementos, creo que eso es mucho.

Así que me gustaría preguntarles, ¿cuál es la forma más optimizada de hacer esto?

Gracias de antemano.

    
pregunta user204415

2 respuestas

4

Esto parece un caso de optimización prematura. Comience implementando su algoritmo de forma iterativa, y vea qué tan rápido se desempeña. Entonces sabrá exactamente cuánto más rápido necesita para hacerlo, y decidirá cuántas operaciones (y cuáles) realizará en paralelo.

Implementar todo esto como una función combinatoria de 1 paso no funcionará bien: requerirá una tonelada de recursos y ni siquiera se ejecutará tan rápido sin la canalización adecuada.

    
respondido por el Dmitry Grigoryev
2

Está saltando el arma asumiendo un FPGA para este problema ( enlace )

Describa con mucho más detalle lo que quiere lograr: tamaños de datos, tasas, requisitos de latencia. Tienes que demostrarte a ti mismo que tienes un problema importante. Solo entonces puede pensar en posibles soluciones específicas (de las cuales es probable que FPGA sea el penúltimo elemento en su lista antes de "ASIC totalmente personalizado" :)

Entonces, cosas como: ¿los datos de entrada llegan en secuencia o ya están en la memoria? ¿Dónde está esa memoria? ¿Cómo la transferirá a su acelerador?

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas