Anda di halaman 1dari 8

Estructura y Tecnologa de Computadores III - Captulo 7

-1-

CAPTULO 7. PROCESADORES VECTORIALES

POR QU MQUINAS VECTORIALES? - Lmites de la segmentacin: Duracin del ciclo de reloj. Velocidad en la bsqueda instrucciones.

decodificacin

de

- Grandes aplicaciones cientficas: manejan conjuntos de datos activos muy grandes con baja localidad de memoria, y consiguen rendimientos pobres de la jerarqua de memoria. - Mquinas vectoriales: proporcionan instrucciones que trabajan sobre vectores. - Los procesadores vectoriales segmentan las operaciones sobre los elementos de un vector, tanto la operacin aritmtica como los accesos a memoria y clculo de direcciones efectivas. - Propiedades de las operaciones vectoriales: El clculo de un resultado es independiente de los clculos de los resultados anteriores. Especifican el trabajo de todo un bucle: ancho de banda de instrucciones reducido. Acceso a memoria con patrn conocido. Se reducen los riesgos de control en bucles.

Estructura y Tecnologa de Computadores III - Captulo 7

-2-

ARQUITECTURA VECTORIAL BSICA - Mquina vectorial: Unidad escalar segmentada + unidad vectorial. Las unidades funcionales tienen una latencia de varios ciclos de reloj. Ciclo de reloj de pequea duracin. - Tipos de arquitecturas vectoriales: Mquina vectorial con registros. Mquina vectorial memoria-memoria. - Componentes principales del conjunto de instrucciones de una mquina vectorial con registros (DLXV): Registros vectoriales: Bancos de longitud fija. Cada banco contiene un vector. Unidades funcionales vectoriales: Totalmente segmentadas. Pueden comenzar una operacin cada ciclo de reloj. Necesitan una unidad de control para detectar riesgos estructurales y por dependencia de datos. Unidad de carga/almacenamiento de vectores. Conjunto de registros escalares. - Ejecucin de instrucciones en DLXV: Tiempo de arranque (Ta) (start-up): Depende de la latencia de las etapas de las unidades vectoriales. Dado por el nmero de etapas de la unidad. Velocidad de iniciacin (vi): Tiempo por cada resultado una vez la operacin vectorial est en ejecucin. Dada por la frecuencia con la que la unidad funcional puede aceptar nuevos operandos. Normalmente es uno por ciclo de reloj.

Estructura y Tecnologa de Computadores III - Captulo 7

-3-

Velocidad de terminacin: iguala a la de iniciacin. - Tiempo de ejecucin de una operacin vectorial de longitud n: T + n v . a i Si vi = 1, entonces p s =
Tuf c

, donde

ps: profundidad de la segmentacin Tuf: tiempo de la unidad funcional c: duracin del ciclo de reloj. - Tiempos en una unidad vectorial de carga/almacenamiento: Ta en una carga: tiempo de lectura de una palabra en memoria y su escritura en un registro. Ta en un almacenamiento: no se considera. vi: velocidad a la que se extraen o almacenan las siguientes palabras (si no se producen detenciones). - Memoria: bancos que permiten accesos independientes entre s. Bancos sincronizados. Accesos sncronos en paralelo. Los datos se recogen a la vez en un buffer y se envan uno a uno al procesador, mientras los bancos pueden servir otra peticin. Bancos desfasados o asncronos. Accesos sncronos en paralelo. Los datos se leen a la vez, pero los bancos envan uno a uno los datos al procesador. Cuando un banco ha transmitido su dato, puede servir otra peticin. Si cada banco tiene ancho de palabra de doble precisin, con vi = 1, el n de bancos de memoria debe ser mayor o igual que el n de ciclos de reloj por acceso al banco. - El nmero de bancos de memoria y el de segmentos en las unidades funcionales son conceptos equivalentes.

Estructura y Tecnologa de Computadores III - Captulo 7

-4-

LONGITUD DE UN VECTOR - La longitud real de los vectores en un programa no tiene por qu coincidir con la de los registros vectoriales. - Registro de longitud vectorial (VLR): controla la longitud de cualquier operacin vectorial, incluso cargas y almacenamientos. - VLR es menor o igual que la longitud de los registros vectoriales (VLM: longitud mxima del vector). - Si la longitud real del vector es mayor que VLM: seccionamiento (strip mining). - El clculo de los costes de arranque se complica (costes de seccionamiento).

SEPARACIN ENTRE LOS ELEMENTOS DE UN VECTOR - Las operaciones de carga y almacenamiento de vectores deben especificar la longitud de comienzo y la separacin (stride) entre los elementos que conforman el vector de la operacin. - Conflicto del banco de memoria: Pueden pedirse datos a un banco a una frecuencia mayor que el tiempo de acceso a memoria. Se presenta si
mcm ( s , n b ) s

< lm , donde

s: separacin nb: nmero de bancos de memoria lm: latencia de acceso a memoria en ciclos de reloj.

Estructura y Tecnologa de Computadores III - Captulo 7

-5-

MODELO PARA EL RENDIMIENTO VECTORIAL - Componentes del tiempo de ejecucin de un bucle seccionado: Tiempo de cada operacin vectorial en el bucle para procesar un elemento (Tel). Depende de la mquina. Coste adicional (overhead) de las instrucciones vectoriales para cada bloque seccionado, formado por el tiempo de ejecucin del cdigo escalar para seccionamiento de cada bloque ms el coste de arranque del vector para cada bloque (Tb+Ta), que dependen de la mquina y del compilador. Costes adicionales (overhead) del clculo de las direcciones de comienzo y la escritura del vector de control (Tbase). - Tiempo total de una operacin vectorial de longitud n:
Tn = Tbase + n MVL

( Tb + Ta ) + n Tel

Estructura y Tecnologa de Computadores III - Captulo 7

-6-

TECNOLOGA DE COMPILADORES PARA MQUINAS VECTORIALES - Dependencias entre iteraciones del bucle: cuando una iteracin utiliza un valor calculado en iteraciones anteriores. El bucle no ser vectorizable. Test del mximo comn divisor (GCD): si GCD(c,a) es divisor de (d-b), existe dependencia (el elemento se almacena con el ndice aj+b, y se lee con el ndice ck+b). Test de Banerjee: tiene en cuenta los extremos del bucle. - Riesgo RAW: dependencia verdadera de datos. Impide la vectorizacin del bucle. - Riesgo WAR: antidependencia. Se puede eliminar renombrando los registros en el compilador. - Riesgo WAW: dependencia de salida. Se puede eliminar renombrando compilador. - El compilador deber: Vectorizar bucles. Generar cdigo de seccionamiento. Asignar registros vectoriales. - La eficacia de las tcnicas de vectorizacin depende de: La estructura del programa: algoritmos escogidos y forma de codificacin. La capacidad del compilador.

registros

en

el

Estructura y Tecnologa de Computadores III - Captulo 7

-7-

MEJORANDO EL RENDIMIENTO VECTORIAL - Encadenamiento (chaining): Los elementos de un vector se tratan de manera individual, y se pueden adelantar de una unidad funcional a otra. Las unidades funcionales deben ser distintas. vi = 1 si las unidades estn totalmente segmentadas. - Sentencias ejecutadas condicionalmente: Vector de control de mscara vectorial (VM): vector booleano de longitud MVL. Cada elemento con valor 1 en VM se ve afectado por la operacin vectorial. Hay mquinas que slo enmascaran el almacenamiento del elemento, y otras que enmascaran tambin la operacin. - Matrices dispersas: Dispersar-agrupar (scatter-gather) usando vectores de ndices. Es necesario que el programador indique al compilador que vectorice el bucle. Hay mquinas con soporte hardware para crear vectores de ndices dada una cierta separacin. Vectores de ndices comprimidos (booleanos). - Reduccin vectorial: Expansin escalar: utilizar un vector intermedio. Doblamiento recursivo: secuencias de vectores progresivamente ms cortos.

Estructura y Tecnologa de Computadores III - Captulo 7

-8-

MEDIDAS DEL RENDIMIENTO VECTORIAL - Rn: velocidad en MFLOPS sobre un vector de longitud n (R: longitud infinita). - N la longitud necesaria para alcanzar la mitad de R. : - Nv: longitud del vector para la que el modo vectorial es ms rpido que el escalar.

PIFIAS - Concentrarse en el rendimiento mximo e ignorar los gastos de arranque. - Incrementar el rendimiento vectorial sin hacer incrementos comparables en el rendimiento escalar.

FALACIAS - El rendimiento escalar de los supercomputadores es bajo. - Se puede obtener rendimiento vectorial sin proporcionar suficiente ancho de banda de memoria.

OBSERVACIONES FINALES - Las mquinas escalares segmentadas de alta velocidad pueden superar el rendimiento de las vectoriales (a igualdad de frecuencias de reloj) si el nivel de vectorizacin no es muy alto.