180 likes | 309 Views
Arquitecturas SIMD. Clase Práctica No 6. 1. Vector Processor M-M.
E N D
Arquitecturas SIMD ClasePráctica No 6
1. Vector Processor M-M • 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 • RecordemosModelotiempo 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
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 • Casosecuencial: 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 tproducción (N-1)t k1t tprep1 k2t tprep2 (N-1)t tprep1 k1t (N-1)t tprep2 k2t (N-1)t
3. Array Processor: S(k) • Explique el funcionamiento de un ArrayProcessor 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 copiacadaelemento 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: + • Tercerpaso: 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: +
4. Array Processor: C[] = A[]+B[] • Diseñe un ArrayProcessor 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[] • Estaoperaciónesmás simple y puedeserdirectasiN(RedEP) > N(A|B). • Dado quees el caso: • Preparación: Se cargan los elementoscorrespondientes de A[] y B[] a los registros A y D de los EP. • Paso 1: Unidad de control instruye: + • Guardarresultado: Se almacenan los elementoscorrespondientes de los registros A de los EP a C[]. • Ejemplo en clase
5. WaveFrontProcessor: C[] = A[]*B[] • Diseñe un WaveFrontProcessor 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. WaveFrontProcessor: C[] = A[]*B[] • Ejemplo de la clase. • Solo resta: • Aplicar la multiplicación con B[] comomatriz diagonal. • Derivarexpresión del rendimiento: tiempo de ejecución. • Calcularlasolasque se requieren para diferentestamaños de matrices Expresión general en base a N. • Otrasconsideraciones: • Definir un tiempo de disparo y de propagación. • Considerar el tiempomedio de acceso de la memoria. • No se puedebasar en tporque la red esasíncrona.
6. ProcesadorSistó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. ProcesadorSistólico C[]=A[]*B[] • Preparación: Configuración de lasceldas (control distribuido) • CeldaMultiplicativa-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.
7. ProcesadoresAsociativos • 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.