TEMA 3 PROCESADORES VECTORIALES
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o PROCESADORES VECTORIALES V e n t a j a s d e l o s p r o c e s a d o r e s v e c t o r i a l e s Proporcionan operaciones para trabajar con vectores. Una sola instrucción trabaja sobre todos los elementos de un vector: El cálculo sobre los elementos de un vector suele ser independiente. Menos riesgos de datos. Los accesos a memoria siguen un patrón fijo. Los elementos de los vectores están ordenados. Se eliminan bucles y dependencia de control. -Pueden trabajar también con operandos escalares.
ESQUEMA PROCESADOR VECTORIAL
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o Características del procesador D vectorial L X v e c t o r i genérico a l : D L X V Registros vectoriales: Hay de 8 a 256 registros para almacenar vectores de 64 elementos por lo general(cada elemento de 64 bits). Unidades Funcionales Vectoriales: Totalmente segmentadas. Aceptan una nueva operación cada ciclo. Las hay Punto Flotante y enteras. Unidades Vectoriales de Carga y Almacenamiento: Totalmente segmentadas. También se ocupan de los accesos a memoria escalares. Registros escalares
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I Características procesadores vectoriales comerciales J u a n A n t o n i o M a e s t r o E j e m p l o s d e p r o c e s a d o r e s v e c t o r i a l e s
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o Operaciones vectoriales O p e r a c i o n e s t í p i c a s e n e l D L X V
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o E e m l o : S A X P Y / D A X P Y O p e r a c i ó n S A X P Y ( D A X P Y e n d o b l e p r e c i s i ó n ) : de manera escalar Operaciones vectoriales Y = a X + Y V e c t o r e s d e 6 4 e l e m e n t o s d e 6 4 b i t s
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o Strip mining (troceado del vector) Ejemplo MVL: máxima longitud del vector (64) VLR: longitud del vector en cada momento
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I Operaciones vectoriales por filas o columnas D L X V C = A B
Operaciones vectoriales condicionales
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o Operaciones vectoriales O p e r a c i o n e s v e c t o r i a condicionales l e s c o n d i c i o n a l e s R e g i s t r o V e c t o r - M a s k ( V M ) : V e c t o r d e l o n g i t u d M V L. L a s o p e r a c i o n e s v e c t o r i a l e s s e a p l i c a r á n a l e l e m e n t o i d e l v e c t o r, s i y s ó l o s i e l b i t i - é s i m o d e l V M e s t á a 1
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I MEDIDA DEL RENDIMIENTO DE UN FRAGMENTO S DE t r i p - CÓDIGO m i n i n g VECTORIAL J u a n A n t o n i o M a e s t r o T i e m p o d e e j e c u c i ó n T n T arranque nt elemento n: número de elementos en cada vector Tarranque: latencia de producir el primer resultado Telemento: tiempo que se tarda en calcular el resto de elementos R n n FLOPS / T (n elementos Operaciones en coma n flotante)/ T n
R n n FLOPS T n Convoy: conjunto de instrucciones que pueden ser emitidas simultáneamente al no existir dependencias verdaderas entre ellas ni riesgos estructurales DEPENDENCIA RAW. SIN ENCADENAMIENTO
DEPENDENCIA RAW Encadenamiento: La salida de una instrucción se anticipa a la entrada de la siguiente. El tiempo de ejecución viene dado por el número de elementos del vector (número de ciclos) más las iniciaciones de las instrucciones. No se permite riesgos estructurales Convoy: conjunto de instrucciones que pueden ser emitidas simultáneamente al no existir dependencias verdaderas entre ellas ni riesgos estructurales Encadenamiento sin solapamiento
Encadenamiento con solapamiento
LA UNIDAD FUNCIONAL DE CARGA/ALMACENAMIENTO VECTORIAL Es capaz de mantener un ancho de banda sostenido de una palabra por ciclo de reloj tras la latencia de acceso inicial. El tiempo de arranque corresponde con los tiempos de acceso a memoria. El tiempo de elemento es el tiempo empleado desde un banco de memoria hasta un registro o viceversa Instrucción de carga Instrucción de almacenamiento
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o Medida del rendimiento de un bucle vectorizado S t r i p - m i n i n g Y = a X + Y V e c t o r e s d e 6 4 e l e m e n t o s d e 6 4 b i t s Strip mining (troceado)
A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a Medida del rendimiento de un bucle vectorizado S t r J u a n A n t o n i o M a e s t r o Tiempo de ejecución de un bucle con stripmining: T n T base n MVL ( T bucle T arranque ) n T elemento n: número de elementos en cada vector MVL: Longitud máxima del vector en la arquitectura Tbase: tiempo que consumen las instrucciones escalares antes de abordar el bucle exterior (que secciona el vector en secciones) Líneas 1,2,3 Tbucle: Tiempo de gestión del bucle con operaciones escalares para realizar el seccionamiento. Líneas 4,5,9,10 y 11 Tarranque: Tiempo de inicio de las operaciones vectoriales de los convoyes de instrucciones Telemento: número de grupos vectoriales (convoyes) Líneas 6,7 y 8 R Operaciones vectoriales n lim( ) n T n
MVL es 64 y la frecuencia de reloj es 500 Mhz. Todas las operaciones vectoriales están segmentadas. En el PROCESADOR VECTORIAL, la suma tiene un tiempo de inicio de 6 ciclos, y la multiplicación de 7. Las operaciones aritméticas tienen latencia 1. Las cargas y almacenamientos en memoria también están segmentadas, con un tiempo de inicio de 12 ciclos. Pueden realizarse operaciones en paralelo, siempre que existan múltiples puertos de lectura y escritura en la memoria. Tbase=10 ciclos, Tbucle=15 ciclos
CASO 1: Sin encadenamiento de resultados entre unidades T n n Tbase Tbucle Tarranque nt MVL ( ) elemento 64 64 64 64 ciclos T elemento 4ciclos 64elementos
CASO 1: Sin encadenamiento de resultados entre unidades T n n Tbase Tbucle Tarranque nt MVL ( ) elemento
CASO 1: Sin encadenamiento de resultados entre unidades
CASO 2: Con encadenamiento de resultados entre unidades 64 64 64 ciclos T elemento 3ciclos 64elementos
CASO 2: Con encadenamiento de resultados entre unidades T n n Tbase Tbucle Tarranque nt MVL ( ) elemento
CASO 2: Con encadenamiento de resultados entre unidades
CASO 3: Con encadenamiento y dos unidades de carga/almacenamie nto 64 64 ciclos T elemento 2ciclos 64elementos
CASO 3: Con encadenamiento y dos unidades de carga/almacenamie nto T n n Tbase Tbucle Tarranque nt MVL ( ) elemento
CASO 3: Con encadenamiento y dos unidades de carga/almacenamie nto
CASO 4: Con encadenamiento, dos unidades de carga/almacenamiento y solapamiento entre convoyes dentro de la misma iteración
CASO 4: Con encadenamiento, dos unidades de carga/almacenamiento y solapamiento entre convoyes dentro de la misma iteración T n n Tbase Tbucle Tarranque nt MVL ( ) elemento
CASO 4: Con encadenamiento, dos unidades de carga/almacenamiento y solapamiento entre convoyes dentro de la misma iteración
examen 2012 (muy similar al ejercicio 3.11 y 3.12) está resuelto en Alf carpeta documentos. Allí están todas las soluciones a problemas de examen de procesadores vectoriales)