18
ARQUITECTURAS SIMD Clase Práctica No 5

Arquitecturas SIMD

  • Upload
    jereni

  • View
    58

  • Download
    0

Embed Size (px)

DESCRIPTION

Arquitecturas SIMD. Clase Práctica No 6. 1. Vector Processor M-M. - PowerPoint PPT Presentation

Citation preview

Page 1: Arquitecturas  SIMD

ARQUITECTURAS SIMDClase Práctica No 5

Page 2: Arquitecturas  SIMD

1. Vector Processor M-M1. 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.

Page 3: Arquitecturas  SIMD

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)t = 154t = 154*200ns tv = 30,800ns = 30.8ms

Page 4: Arquitecturas  SIMD

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.

Page 5: Arquitecturas  SIMD

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)t tprep2 k2t (N-1)t

Page 6: Arquitecturas  SIMD

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.

Page 7: Arquitecturas  SIMD

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.

Page 8: Arquitecturas  SIMD

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: +

Page 9: Arquitecturas  SIMD

3. Array Processor: S(k)

Page 10: Arquitecturas  SIMD

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.

Page 11: Arquitecturas  SIMD

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

Page 12: Arquitecturas  SIMD

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.

Page 13: Arquitecturas  SIMD

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.

Page 14: Arquitecturas  SIMD

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.

Page 15: Arquitecturas  SIMD

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.

Page 16: Arquitecturas  SIMD

6. Procesador Sistólico C[]=A[]*B[]

Page 17: Arquitecturas  SIMD

6. Procesador Sistólico C[]=A[]*B[]

Page 18: Arquitecturas  SIMD

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.