Altifigence Academy

9 / 20 · Concepto

Salida estacionaria y otros flujos de datos

Compara almacenamiento y transporte identificando qué permanece en el PE.

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 datosValor retenidoCoste que examinar
OSSuma parcial de salidaAcumuladores anchos y recogida de resultados
WSPesoPrecarga y transporte/almacenamiento de sumas parciales
ISActivaciónSuministro 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.

Tu elección se aplica a este navegador. Puedes cambiarla en el pie de página.