1 / 20 · Concepto
Asocia productos escalares a elementos de procesamiento
Separa los índices de fila, columna y reducción y calcula una pequeña matriz de referencia.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Fija el cálculo antes de planificarlo
Sea A de dimensiones M×K y B de dimensiones K×P. Su producto C tiene dimensiones M×P. El índice i selecciona una fila de salida, j selecciona una columna de salida y k es el índice de reducción dentro de la suma. Los índices empiezan en cero en todo este curso.
Nuestro diseño de salida estacionaria asigna C(i,j) a PE(i,j). Ese elemento de procesamiento conserva su suma parcial mientras A se desplaza a la derecha y B hacia abajo. El movimiento permite reutilizar los datos; la ecuación especifica qué operandos pueden multiplicarse. Definiremos por separado la temporización de reloj, para que un error de planificación no pueda cambiar silenciosamente las matemáticas previstas.
Resuelve una referencia completa
Usa A=[[1,2],[3,4]] y B=[[5,6],[7,8]]. PE(0,1) combina la fila [1,2] con la columna [6,8]. Acumula 1×6=6 y 2×8=16 para obtener 22. Usar en cambio la segunda fila [7,8] de B da 23, un indicio útil de un error de fila o columna.
| PE | Término k=0 | Término k=1 | Resultado |
|---|---|---|---|
| (0,0) | 5 | 14 | 19 |
| (0,1) | 6 | 16 | 22 |
| (1,0) | 15 | 28 | 43 |
| (1,1) | 18 | 32 | 50 |
La matriz esperada es [[19,22],[43,50]]. Cada PE realiza dos MAC válidas, así que la matriz realiza ocho MAC. Una convención que cuenta por separado una multiplicación y una suma informa de dieciséis operaciones aritméticas. Indica siempre la unidad al comparar el rendimiento.
Relaciona las coordenadas con el almacenamiento
En almacenamiento por filas, A(i,k) tiene el desplazamiento de elemento iK+k y B(k,j) el desplazamiento kP+j. Para la columna j=1 de este ejemplo, B usa los desplazamientos 1 y 3. Por tanto, una interfaz de memoria que entrega filas contiguas necesita búferes o reorganización para suministrar columnas a la parte superior de la matriz.
Construye la referencia aritmética con enteros anchos y aplica después la conversión de salida elegida. Estas pequeñas entradas positivas no prueban el desbordamiento. Las pruebas posteriores deben añadir valores negativos, el operando más negativo y una reducción más larga. Una matriz identidad B debe reproducir A, mientras que una fila de ceros de A debe producir una fila de ceros de C. Registra la lista de términos k de cada PE además de su suma final: así se detecta un término ausente o repetido incluso cuando dos errores se compensan numéricamente.
Inténtalo tú
Para A=[[2,-1],[0,3]] y B=[[4,5],[-2,1]], calcula C, el número de MAC y el desplazamiento de elemento de B(1,0) en almacenamiento por filas.
Leer la explicación
C=[[10,9],[-6,3]]: las cuatro sumas son 8+2, 10−1, 0−6 y 0+3. Hay 2×2×2=8 MAC. B(1,0) tiene el desplazamiento de elemento 1×2+0=2.