9 / 20 · Concepto
Salida estacionaria y otros flujos de datos
Compara almacenamiento y transporte identificando qué permanece en el PE.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Pregunta qué valor permanece local
Una matriz sistólica realiza trabajo en paralelo mientras los operandos se desplazan entre elementos de procesamiento vecinos. «Estacionario» describe un valor retenido cerca para reutilizarlo durante un cálculo. Las distintas elecciones cambian los registros del PE, los caminos de las sumas parciales y la planificación del borde, incluso cuando la operación matemática es idéntica.
En el diseño de salida estacionaria de este curso, PE(i,j) conserva la suma parcial de C(i,j). A y B se desplazan conforme avanza k. Tras llegar los K términos, se recoge el resultado; clear inicia un nuevo bloque de salida. Los valores de A se reutilizan a lo largo de una fila y los de B a lo largo de una columna. En el ejemplo 2×2, A(0,0)=1 contribuye tanto a C(0,0) como a C(0,1).
Los diseños de pesos estacionarios precargan pesos como B en los PE y los reutilizan con las activaciones entrantes. Las sumas parciales deben desplazarse o recogerse en otro lugar. Renombrar los puertos no transforma el controlador OS en WS: cambian el valor almacenado, la secuencia de precarga y el recorrido del resultado. Los diseños de entradas estacionarias conservan activaciones para reutilizarlas entre pesos o cálculos de salida. Comparamos esa idea sin implementar aquí una matriz IS.
| Flujo de datos | Valor retenido | Coste que examinar |
|---|---|---|
| OS | Suma parcial de salida | Acumuladores anchos y recogida de resultados |
| WS | Peso | Precarga y transporte/almacenamiento de sumas parciales |
| IS | Activación | Suministro de pesos y combinación de sumas de salida |
Separa tres mediciones de tráfico
Considera dos productos 2×2 que usan la misma B. Nuestro modelo de borde OS suministra cuatro valores A y cuatro B por trabajo: dieciséis valores de operandos entre los dos trabajos. Un búfer local de B puede evitar releer B de la memoria externa para el segundo trabajo, aunque sigue suministrando sus cuatro tokens de borde. Reutilizar la precarga de pesos ofrece una compensación diferente y requiere un recorrido distinto para las sumas parciales.
Las lecturas externas, las inyecciones en el borde y las transferencias entre PE son mediciones diferentes. El README de Gemmini de UC Berkeley ofrece un ejemplo de fuente primaria de flujos de datos OS y WS configurables. Nuestra matriz didáctica tiene su propio contrato y no reproduce la implementación ni la interfaz de instrucciones de Gemmini.
Para una revisión de diseño, identifica qué permanece local, dónde se acumulan las sumas y qué valores cruzan cada límite. La reutilización por sí sola no garantiza suficientes puertos de memoria ni un rendimiento sostenido.
Inténtalo tú
Dos trabajos 2×2 comparten B conservada en un búfer local. A no se reutiliza. ¿Cuántas lecturas externas de operandos e inyecciones en el borde OS hacen falta?
Leer la explicación
Las lecturas externas suman 12 valores: dos matrices A de cuatro más una matriz B de cuatro. Las inyecciones en el borde suman 16 valores: cuatro A más cuatro B por trabajo. Se excluyen las escrituras de resultados y el reenvío interno.