arquitecturas simd clase práctica no 6. 1. vector processor m-m 1. estime el tiempo de ejecución...
TRANSCRIPT
ARQUITECTURAS SIMDClase Práctica No 6
1. Vector Processor M-M
1. Estime el tiempo de ejecución de una suma vectorial en un Vector Processor M-M basado en un cauce de 7 etapas que tiene un período de reloj de 200 ns y un tiempo de preparación de 20 ciclos, sabiendo que la operación se realiza sobre vectores de 128 elementos manteniendo ejecución en flujo continuo todo el tiempo.
1. Vector Processor M-M• Recordemos Modelo tiempo de ejecución
tv = tpreparacion + tpaso
tv = tpreparacion + kt + (N-1)t
• Reemplazando:
tv = 20t + 7t + (N-1) = (t 27+ N-1)t tv = (27+ 127) = 154 t t = 154*200ns
tv = 30,800ns = 30.8ms
2. Vector Processor R-R• Suponga que usted ejecuta dos operaciones vectoriales
con dependencia de datos R-D en un VP R-R. La primera operación la realiza una unidad vectorial basada en un cauce de 5 etapas. La segunda, en otra unidad de 7 etapas. Todas las unidades tienen un período de reloj de 100 ns y un tiempo de preparación de 10 ciclos. sabiendo que las operaciones se realizan sobre vectores de 128 elementos, estime:
• Tiempo de ejecución total si las operaciones se ejecutan secuencialmente.
• Tiempo de ejecución total si se emplea encadenamiento de cauces.
2. Vector Processor R-R• Caso secuencial: similar al anterior
ttotal = [tprep1 + k1t +(N-1)t] + [tprep2 + k2t +(N-1)t]
• Con Encadenamiento:
ttotal = tprep1 + k1t + k2t +(N-1) = t tprep1 + (k1+k2+N-1) t
tprep1 k1t (N-1)t
tprep2 k2t (N-1)t
tprep1 k1t tproducción
(N-1)ttprep2 k2t (N-1)t
3. Array Processor: S(k)• Explique el funcionamiento de un Array Processor para
calcular Suma S(k) de las primeras k componentes de un vector A. • Recuerde que esta arquitectura se basa en una red de EPs con
UC central. • Aproveche las operaciones de ruteo y enmascaramiento para
calcular las sumas recursivamente.
3. Array Processor: S(k)• Se desea implementar operación S(k) o suma de las primeras
k componentes de un vector A para todo k = 0,1,.......N-1, dado A= (A0, A1, ......AN-1)
• Resulta un vector donde cada elemento vale S(K): la suma de las componentes inferiores o igual a la posición del elemento.
• Se puede calcular recursivamente realizando N-1 iteraciones definidas como:• S(0) = A(0)• S(k) = S(k-1) + A(k) para k = 1,2, ...., N-1
• En el ArrayProcessor esta operación requiere uso de N EPs y se ejecuta en [log2N] pasos. • Por ejemplo, para N = 8 se usan 8 EP y se ejecuta en 3 pasos: [log28]=3.
• Utiliza ruteo de datos y enmascaramiento de EP.
3. Array Processor: S(k)• Preparación: Se copia cada elemento del vector al registro A
de su EP correspondiente (ALU: A = A + D).
• Primer paso: i = 0 a N-2, enrutar el valor del registro A del EP(i) al registro D del EP(i+1) y la unidad de control envía: +
• Segundo paso: i = 0 a N-3, enrutar el valor del registro A del EP(i) al registro D del EP(i+2) y la unidad de control envía: +
• Tercer paso: i = 0 a N-5 enrutar el valor del registro A del EP(i) al registro D del EP(i+4) y la unidad de control envía: +
3. Array Processor: S(k)
4. Array Processor: C[] = A[]+B[]• Diseñe un Array Processor de 4x4 celdas. Recuerde que
esta arquitectura se basa en una red de EPs con UC central. • Explique la funcionalidad de cada EP para que pueda realizar
suma matricial. • Corra una suma matricial de 2 matrices de 4X4 en este
procesador, explicando el proceso.
4. Array Processor: C[] = A[]+B[]• Esta operación es más simple y puede ser directa si
N(RedEP) > N(A|B).• Dado que es el caso:
• Preparación: Se cargan los elementos correspondientes de A[] y B[] a los registros A y D de los EP.
• Paso 1: Unidad de control instruye: +• Guardar resultado: Se almacenan los elementos correspondientes
de los registros A de los EP a C[].
• Ejemplo en clase
5. WaveFront Processor: C[] = A[]*B[]• Diseñe un WaveFront Processor de 2x2 celdas para
multiplicar matrices. • Recuerde que esta arquitectura se basa en una red de EPs con
control distribuido en la red y los EPs con disparos de celdas y propagación de datos.
• Explique la funcionalidad de cada EP para que pueda realizar multiplicación matricial.
• Corra una multiplicación matricial 2x2 para verificar el funcionamiento del WFP. Carque las celdas de la periferia con vectores filas de la primera matriz en las entradas X y vectores columnas de la segunda matriz por las entradas Y.
• Verifique la multiplicación con una matriz diagonal (idéntico).• Trate de derivar una expresión para determinar el desempeño del
procesador en la multiplicación de matrices.
5. WaveFront Processor: C[] = A[]*B[]• Ejemplo de la clase.• Solo resta:
• Aplicar la multiplicación con B[] como matriz diagonal.• Derivar expresión del rendimiento: tiempo de ejecución.
• Calcular las olas que se requieren para diferentes tamaños de matrices Expresión general en base a N.
• Otras consideraciones:• Definir un tiempo de disparo y de propagación.• Considerar el tiempo medio de acceso de la memoria.• No se puede basar en t porque la red es asíncrona.
6. Procesador Sistólico C[]=A[]*B[]• Diseñe un procesador sistólico para multiplicación de
matrices 2x2. • Recuerde que esta arquitectura se basa en una red de EPs con
control distribuido en la red y los EPs. • Explique la funcionalidad de cada EP para que pueda realizar
multiplicación matricial. • Derive una expresión para determinar el desempeño del
procesador en la multiplicación de matrices.
6. Procesador Sistólico C[]=A[]*B[]• Preparación: Configuración de las celdas (control distribuido)• Celda Multiplicativa-Aditiva (similar a la del WFP)
• Se requerirá involucrar 3(N2 - N) + 1 celdas o EP para la operación C[N] = A[N] * B[N].
• Tiempo: Se requieren 3N-1 pasos para ejecutar la operación.
6. Procesador Sistólico C[]=A[]*B[]
6. Procesador Sistólico C[]=A[]*B[]
7. Procesadores Asociativos• Investigue el funcionamiento de una memoria asociativa,
diferenciando los niveles bit serie-palabra paralelo y bit paralelo-palabra paralelo.• Abordado en clase• Consultar el Hwang o Internet.