Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Multiplicación de n...
 
Avisos
Vaciar todo

Multiplicación de numeros de 8bits

8 Respuestas
4 Usuarios
0 Reactions
2,377 Visitas
ionthas
Respuestas: 153
Topic starter
(@ionthas)
Estimable Member
Registrado: hace 17 años

Buenas a todos.

Actualmente estoy trabajando en la implementación de una red neuronal para controlar un robot con una FPGA.

Al implementar el diseño lógico de la neurona tengo un problema:

La neurona recibe unas entradas "X" con buses de 8 bits. Esas entradas tienen que multiplicarse por otro número de 8 bits "Weight". El problema que tengo es que al multiplicar los dos número de 8 bits sale un número de 16bits. Después de unas operaciones más, el número que sale por la neurona es de 16 bits y ese tiene que ir conectado a otra neurona con entrada de 8 bits.

No se si me he explicado bien, pero necesito hacer una multiplicación de numeros de 8 bits y que la salida tambien sea de 8 bits. Ya que sino, en cada capa de neuronas los buses se multiplicarian por dos.

Saludos y gracias por la ayuda,

Ionthas.

Responder
7 respuestas
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 20 años

Si que llevan multiplcadores, pero mi idea es hacer que cada neurona tenga su propio multiplicador.
Voy a provar de hacer el truncado que me ha propuesto ragnarok.

O tienes que ir muy deprisa o es una forma bastate burda de gastar espacio en la FPGA (que precisamente no es barato)...

Yo, si tu caso es que no tienes que ir a 'tiempo real', sino que puedes explayarte unos ms pues implementaría un único multiplicador de 16 o 32 bits y haría todas las multiplicaciones allí (mejor que multiplicador un convolucionador*).

S2

Ranganok Schahzaman

* convolucionador = multiplica y suma el resultado al acumulador.

Responder
ionthas
Respuestas: 153
Topic starter
(@ionthas)
Estimable Member
Registrado: hace 17 años

La verdad es que al final lo acabaré haciendo así seguramente. Lo que quería, era tener la potencia de cálculo repartida por igual en todas las neuronas para hacerlo mas parecido a un cerebro humano. (Aunque no es óptimo en espacio).

Responder
beamspot
Respuestas: 1132
(@beamspot)
Noble Member
Registrado: hace 18 años

Con las capacidades de una FPGA y un buen aprovechamiento de su RAM interna, se puede hacer un 'secuenciador' que ejecute todos los pasos de todas las neuronas en unos pocos ciclos por neurona, usando un solo multiplicador. Incluso, dado que algunas llevan varios multiplicadores internos, puedes usar varios de ellos para hacer coma flotante. A 100MHz y un sólo ciclo para hacer el MAC, puedes secuenciar varios cientos de 'neuronas' por milisegundo.

Responder
Página 2 / 2
Compartir: