13. Computadores vectoriales segmentados. 14. Computadores...

25
U NIDAD T EM ´ ATICA 2: C OMPUTADORES VECTORIALES . 13. Computadores vectoriales segmentados. 14. Computadores SIMD. 13-1

Transcript of 13. Computadores vectoriales segmentados. 14. Computadores...

Page 1: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

UNIDAD TEMATICA 2: COMPUTADORES VECTORIALES.

13. Computadores vectoriales segmentados.

14. Computadores SIMD.

13-1

Page 2: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

TEMA 13: COMPUTADORES VECTORIALES SEGMENTADOS.

1. Caracterısticas del procesamiento vectorial.

2. Arquitectura vectorial segmentada.

3. Control de la longitud de los vectores.

4. Ejecucion de instrucciones vectoriales.

5. Modos de acceso regular-no secuencial y disperso.

6. Sentencias de ejecucion condicional.

7. Evaluacion de las prestaciones de los computadores vectori-ales.

Bibliografıa:

S. Dasgupta, Computer Architecture: A Modern Synthesis, Volume 1: Foun-dations, John Wiley & Sons, 1989 .

J.L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Ap-proach 2a y 3a ed., Morgan Kauffman Publishers, 1996 y 2002.

Departamento de Informatica de Sistemas y Computadores (DISCA)Facultad de Informatica de Valencia

13-2

Page 3: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

1 CARACTERISTICAS DEL PROCESAMIENTO VECTORIAL.

1. Caracterısticas del procesamiento vectorial.Procesamiento vectorial

Muchos problemas que requieren altas potencias de calculo acceden a grandes es-tructuras de datos:

Repiten el mismo procesamiento a todas las componentes de la estructura.

La localidad de acceso a memoria es distinta a la de los computadores con-vencionales: las antememorias no ocultan el tiempo de acceso a memoria.

⇒ Computadores vectoriales: maquinas que incluyen instrucciones maquina queoperan sobre vectores (estructuras lineales de numeros)Una instruccion vectorial→ sustituye un bucle de instrucciones escalares.

Ejemplo: ~Z := ~X + ~Y , con vectores de 64 elementos.

; Escalar...DADD R4,Rx,#512

loop: L.D F2,0(Rx)L.D F4,0(Ry)ADD.D F6,F2,F4 ; Dep. datosS.D F6,0(Rz) ; Dep. datosDADD Rx,Rx,#8 ; SobrecargaDADD Ry,Ry,#8 ; SobrecargaDADD Rz,Rz,#8 ; SobrecargaDSUB R20,R4,Rx ; SobrecargaBNEZ R20,loop ; Sobrecarga y dep. Control

; VectorialLV V1,RxLV V2,RyADDV V3,V1,V2SV Rz,V3

13-3

Page 4: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

1 CARACTERISTICAS DEL PROCESAMIENTO VECTORIAL.

Caracterısticas del procesamiento vectorial:

1. En cada instruccion vectorial, el calculo de cada componente del vector re-sultado es independiente del resto de componentes→ reduccion del numerode dependencias de datos.

Escalar Vectorial1 componente→ 2 dependencias 1 programa→ 2 dependencias

2. Una instruccion vectorial supone gran cantidad de trabajo → reduccion delcuello de botella de Flynn (1 instruccion→ 1 operacion, con lo que se limitael numero maximo de instrucciones que se pueden lanzar en el mismo ciclode reloj).

Escalar Vectorial1 instruccion→ 1 resultado 1 instruccion→ 64 resultados

3. Una instruccion vectorial equivale a un bucle de instrucciones escalares, sinla sobrecarga de las instrucciones de control de bucle, ni de los riesgos decontrol.

Escalar Vectorial5*64 ciclos de sobrecarga 0 ciclos de sobrecarga

4. Una instruccion vectorial que accede a memoria tiene un patron de accesoconocido a priori → las organizaciones de memoria de multiples modulosfuncionan muy bien, sin intervencion de una antememoria.

Módulo 0

Módulo 1

Módulo M–1 R

R

R

MUX

n–m

m

R/WDIRECCIONES

DATOS

tacc

Lectura 0 Lectura 1 Lectura 2

... M–10 1 2 ... M–10 1 2

Lectura 0 Lectura 1 Lectura 2

Lectura 0 Lectura 1 Lectura 2...

DATOS

DIRECCIONESMSB

Módulo M-1

Módulo 1

Módulo 0

...

Lectura 0 Lectura 1

Dirección 0 Dirección 1 Dirección 2

tLectura 1

... M–10 1 2

13-4

Page 5: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

2 ARQUITECTURA VECTORIAL SEGMENTADA.

2. Arquitectura vectorial segmentada.Hay dos tipos de maquinas con arquitectura del juego de instrucciones vectorial:

Computadores vectoriales segmentados→ UAL segmentada en muchas eta-pas.

Computadores SIMD→ multiples UAL.

Tipos de computadores vectoriales segmentados

Criterio: ¿donde estan los operandos vectoriales de las instrucciones aritmeticas?

1. Con registros vectoriales. En los registros vectoriales, con instruccionespara cargarlos/almacenarlos desde/en memoria.

Ventajas: Si se reutilizan los operandos vectoriales, solo se sufre una vez elacceso a memoria. Los resultados vectoriales temporales no sufren el accesoa memoria.

Inconvenientes: El tamano de los registros vectoriales limita el tamano de losoperandos vectoriales.

2. Memoria-memoria. En la memoria principal.

Ventajas: Tamano de los operandos vectoriales ilimitado.

Inconvenientes: Todas las instrucciones sufren el acceso a memoria.

⇒ la mayorıa de maquinas son con registros vectoriales.

Estructura de un computador vectorial segmentado con registrosvectoriales

Registrosvectoriales

U.A.L.segmentada

Controladorvectorial

Memoriaprincipal

Control dememoriavectorial

Procesadorescalar

13-5

Page 6: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

2 ARQUITECTURA VECTORIAL SEGMENTADA.

Tiempo de ejecucion de una instruccion vectorial

Idealmente: t ≈ nTe, siendo Te el no de ciclos de reloj por resultado.Realmente: t = Tarranque + nTe, siendo:

Tarranque: No de ciclos de reloj necesarios para obtener el primer resultado enla salida del operador.

• Instruccion de carga/almacenamiento: Tarranque = Tiempo de acceso aun modulo.

• Instruccion aritmetica: Tarranque = Latencia del operador (no de etapasde segmentacion).

Te: No de ciclos de reloj por resultado, a partir del primero.

• Instruccion de carga/almacenamiento: Te = Ciclos de reloj por acceso(inversa del ancho de banda de la memoria o bus) ≈ 1 ciclo de reloj.

• Instruccion aritmetica: Te = Ciclos de reloj por componente (inversa dela tasa de iniciacion) ≈ 1 ciclo de reloj.

Para maximizar la productividad, Tarranque debe ser despreciable frente al otro suman-do→ n ↑.

Formato de las instrucciones vectoriales

Codigo de operacion. Tipos de operaciones vectoriales:

• V ← V × V

• V ← V × S

• S ← V × V (reduccion vectorial)

• S ← V (reduccion vectorial)

• Carga y almacenamiento.

Operandos. 3 direcciones: 2 fuentes y 1 destino.

• Registros vectoriales: No de registro.

• Carga y almacenamiento: Origen del vector en memoria y secuencia deacceso (ver pagina 12).

13-6

Page 7: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

2 ARQUITECTURA VECTORIAL SEGMENTADA.

Ejemplo de computador vectorial segmentado: DLXV

Caracterısticas:

1. Procesador escalar: DLX, muy parecido al MIPS.

2. 8 registros vectoriales de 64 componentes (numeros en coma flotante de dobleprecision).

Cada registro vectorial tiene dos puertos de lectura y uno de escritura→ 16puertos de lectura y 8 de escritura en total.

3. 5 unidades funcionales vectoriales: Suma/resta flotante, multiplicacion flotante,division flotante, operaciones enteras y operaciones logicas.

Todas las unidades estan completamente segmentadas (Latencia media = 1).

4. 1 unidad de carga/almacenamiento vectorial. El subsistema de memoria esta com-puesta por varios modulos.

5. Registros escalares: 32 registros enteros y 32 registros de coma flotante (losdel DLX), y 2 registros especiales.

Juego de instrucciones:

1. Instrucciones aritmeticas:ADDV Vi,Vj,Vk ~Vi ← ~Vj + ~Vk

ADDSV Vi,Fj,Vk ~Vi ← Fj + ~Vk

SUBV Vi,Vj,Vk ~Vi ← ~Vj − ~Vk

SUBSV Vi,Fj,Vk ~Vi ← Fj − ~Vk

SUBVS Vi,Vj,Fk ~Vi ← ~Vj − Fk

MULTV Vi,Vj,Vk ~Vi ← ~Vj ∗ ~Vk

MULTSV Vi,Fj,Vk ~Vi ← Fj ∗ ~Vk

DIVV Vi,Vj,Vk ~Vi ← ~Vj ÷ ~Vk

DIVSV Vi,Fj,Vk ~Vi ← Fj ÷ ~Vk

DIVVS Vi,Vj,Fk ~Vi ← ~Vj ÷ Fk

2. Carga/almacenamiento:

LV Vi,Rj ~Vi ←Mem[Rj], Mem[Rj + 8], . . .

SV Ri,Vj Mem[Ri], Mem[Ri + 8], . . .← ~Vj

13-7

Page 8: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

3 CONTROL DE LA LONGITUD DE LOS VECTORES.

3. Control de la longitud de los vectores.¿Cual es el tamano maximo de los vectores?MVL (Maximum Vector Length): Tamano de los registros vectoriales.En el DLXV, MVL=64.

Procesamiento de pequenos vectoresEl registro VLR (Vector Length Register) indica el numero de componentesque realmente deben procesarse: 0 ≤ VLR ≤MVL.

Hay instrucciones para leer/escribir el VLR:

VLR← Ri: MOVI2S VLR,Ri

Ri← VLR: MOVS2I Ri,VLR

Procesamiento de vectores de tamano mayor que MVLTecnica del seccionamiento o strip-mining: Descomponer la operacion vectorialreal de tamano n > MVL en:

Una seccion de tamano (n mod MVL)

(n div MVL) secciones de tamano MVL

Ejemplo. Bucle DAXPY: ~Y := a ~X + ~YEl codigo:

for i := 0 to n-1 doY[i] := a*X[i] + Y[i]

se transforma en:

low := 0;VL := n mod MVL;for j := 0 to (n div MVL) do begin

for i := low to low+VL-1 doY[i] := a*X[i] + Y[i]

low := low+VL;VL := MVL;

end;

Valores de jRango de i 0 1 2 . . . n div MV LDesde 0 m m + MV L . . . n−MV LHasta m− 1 m + MV L− 1 m + 2MV L . . . n− 1

(m = n mod MV L)

13-8

Page 9: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

4 EJECUCION DE INSTRUCCIONES VECTORIALES.

4. Ejecucion de instrucciones vectoriales.Los computadores vectoriales segmentados disponen de varios operadores→ pueden haber en ejecucion multiples operaciones vectoriales.

Ejemplo:

D

D

D

1 646

641 20DIVV V5,V6,V7

ADDV V3,V1,V4

6471MULTV V0,V1,V2

Riesgos estructurales entre operaciones vectoriales

Dos instrucciones no pueden utilizar la misma unidad aritmetica.

Ejemplo:

D

D

D

647

647

1 646

1ADDV V3,V1,V4

1MULTV V0,V1,V2

MULTV V5,V6,V7

El numero de puertos de lectura y escritura de los registros vectoriales esta lim-itado.

Ejemplo:

D

D

D

647

1 646

1ADDV V3,V1,V4

1MULTV V0,V1,V2

DIVV V5,V1,V76420

13-9

Page 10: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

4 EJECUCION DE INSTRUCCIONES VECTORIALES.

Riesgos de datos entre operaciones vectorialesSi consideramos como objeto de almacenamiento el vector completo, en caso deriesgo hay que retrasar la operacion vectorial hasta que haya finalizado completa-mente la operacion precedente.

RAW.

Ejemplo:

646ADDV V4,V1,V5

D

D

647MULTV V1,V2,V3

1

1

t =1+7+64+6+64=142 ciclos.

WAW. Si solo hay 1 puerto de escritura, el riesgo estructural impide la for-macion del riesgo WAW. Si hay mas de un puerto de escritura, el riesgo seresuelve retrasando la segunda operacion vectorial (¿interesa tener mas de 1puerto de escritura?).

Ejemplo:

D

D

646

641

1DIVV V1,V2,V3

20

ADDV V1,V4,V5

WAR. Si consideramos como objeto de almacenamiento cada una de las com-ponentes del vector, no hay problema alguno.

Ejemplo:

D

D

646

641

1

20

ADDV V1,V4,V5

W0

R0

DIVV V0,V1,V2

13-10

Page 11: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

4 EJECUCION DE INSTRUCCIONES VECTORIALES.

Tecnica del encadenamiento de operaciones vectorialesSi consideramos como objeto de almacenamiento cada una de las componentes delvector, en caso de riesgo hay que retrasar la operacion vectorial hasta que la op-eracion precedente haya completado el primer resultado→ se “encadenan” las op-eraciones vectoriales con riesgos.

RAW. Ejemplo:

D

D

W0

R0

647MULTV V1,V2,V3

ADDV V4,V1,V5646

1

1

t =1+7+6+64=78 ciclos.

WAW. Ejemplo:

D

D

646

W0641

1DIVV V1,V2,V3

20

ADDV V1,V4,V5

W0

Generalizacion de la tecnica del encadenamientoDadas dos instrucciones vectoriales entre las que hay un riesgo RAW o WAW, la 2a

instruccion puede leer (caso RAW) o escribir (caso WAW) la componente j siempreque la 1a haya completado hasta la componente i, siendo i ≥ j.Ejemplo:

D

W0

D

R0

647MULTV V1,V2,V3

1

...

ADDV V4,V1,V56461

13-11

Page 12: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

5 MODOS DE ACCESO REGULAR-NO SECUENCIAL Y DISPERSO.

5. Modos de acceso regular-no secuencial y disperso.

Modos de acceso =

Regular

SecuencialNo secuencialBloques

Irregular o disperso

Modo de acceso regular-no secuencial

d

MEMORIA

REGISTROVECTORIAL

B

Parametros: Direccion base B, distancia o stride entre accesos d

Ejemplo: Acceso a la columna de una matriz almacenada por filas.

El modo de acceso regular secuencial se obtiene haciendo d = 1 palabra.

Instrucciones DLXV para el acceso regular-no secuencial

LVWS Vi,Rj,Rk Vi[p]←Mem[Rj + (p ∗Rk)], p = 0.,63SVWS Ri,Rj,Vk Mem[Ri + (p ∗Rj)]← Vk[p], p = 0.,63

Rk contiene el stride en bytes.

13-12

Page 13: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

5 MODOS DE ACCESO REGULAR-NO SECUENCIAL Y DISPERSO.

Modo de acceso por bloques

MEMORIA

REGISTROVECTORIALs

bB

Parametros: Direccion base B, distancia entre accesos s, tamano del bloque accedi-do b.

El DLXV no incluye instrucciones para el modo regular por bloques.

Modo de acceso disperso

En este modo hay que indicar explıcitamente las componentes del vector que sedesean acceder:

1. Asociando al operando vectorial un vector de bits.

2. Asociando al operando vectorial un vector de ındices.

13-13

Page 14: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

5 MODOS DE ACCESO REGULAR-NO SECUENCIAL Y DISPERSO.

Modo de acceso disperso basado en vectores de bits

Un operando vectorial V tiene asociado un vector de bits BV de igual numero decomponentes, de tal forma que

hay que acceder Vi si BVi = 1.

El vector de bits tiene un tamano igual alnumero total de componentes del vector(e independiente de las que se deseen ac-ceder).

1001101

11

0

001000

n

1m

DE BITSVECTOR

VECTORIALOPERANDO

B

Parametros: Direccion base B, vector de bits BV

Modo de acceso disperso basado en vectores de ındices

Un operando vectorial V tiene asociado un vector de ındices IV , el cual contienelos ındices de las componentes que hay que acceder. Por tanto,

hay que acceder Vi si ∃j/IV [j] = i.

El vector de ındices tiene un tamano igualal numero de componentes que hay queacceder.

B

n

m

VECTORVECTORIALOPERANDO

INDICES

12

034689

log n2

Parametros: Direccion base B, vector de ındices IV

13-14

Page 15: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

5 MODOS DE ACCESO REGULAR-NO SECUENCIAL Y DISPERSO.

Instrucciones DLXV para el modo de acceso dispersoSolamente basadas en la utilizacion de vectores de ındices:

Compresion (gather): Dado un operando vectorial en memoria y un vector deındices, carga en un registro vectorial solo las componentes indicadas (comodesplazamiento en bytes) por el vector de ındices.

LVI Vi,Rj,Vk Vi[p]←Mem[Rj + Vk[p]], p = 0.,63

72644832240

96

MEMORIAVECTOR

DE INDICES VECTORIALREGISTRO

Expansion (scatter): Operacion inversa de la compresion.

SVI Ri,Vj,Vk Mem[Ri + Vj [p]]← Vk[p], p = 0.,63

9672644832240

VECTORIALREGISTRO VECTOR

DE INDICES MEMORIA

13-15

Page 16: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

5 MODOS DE ACCESO REGULAR-NO SECUENCIAL Y DISPERSO.

Ejemplo:

Dado el codigo en alto nivel:

for i := 0 to n-1 doA[K[i]] := A[K[i]]+C[M[i]]

LV Vk,RkLVI Va,Ra,VkLV Vm,RmLVI Vc,Rc,VmADDV Va,Va,VcSVI Ra,Vk,Va

13-16

Page 17: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

6 SENTENCIAS DE EJECUCION CONDICIONAL.

6. Sentencias de ejecucion condicional.Problema:

Consideremos el fragmento de codigo:

...for i := 0 to 63 do

if A[i] <> 0 then A[i] := A[i] - B[i];...

El bucle no puede “vectorizarse” debido a que contienen una sentencia condicional.

Solucion:

1. Anadir instrucciones de comparacion vectorial al juego de instrucciones:

Realizan una comparacion componente a componente de los operandosvectoriales

Generan como resultado un vector de bits de igual tamano que los operan-dos vectoriales.

La componente i del vector resultado es “1” si las componentes i de losoperandos vectoriales cumplen la condicion, y viceversa.

2. Utilizar el resultado de las instrucciones de comparacion para procesar soloalgunas componentes.

a) Modificando la unidad aritmetica para enmascarar el procesamiento.

b) Generando un vector de ındices con los ındices de las componentes aprocesar.

13-17

Page 18: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

6 SENTENCIAS DE EJECUCION CONDICIONAL.

Instrucciones de comparacion vectorial del DLXV:

S V Vi,Vj y S SV Fi,Vj

donde puede ser EQ,NE,GT,LT,GE,LE.

El resultado lo escriben sobre un registro implıcito: VM (Vector Mask)

Instrucciones adicionales para la gestion de VM:

CVM: VM← “11. . . 1”.

MOVF2S VM,Fi: VM← Fi.

MOVS2F Fi,VM: Fi ← VM.

Implementacion de condiciones compuestas:

Generar el VM para cada condicion.

Guardar el VM.

Combinar los vectores de bits obtenidos.

Escribir el VM.

...for i := 0 to 63 do

if ((A[i]>0)and(B[i]<5)) then ......

LV V1,RaLD F0,cero(R0) ; cero contiene ‘‘0’’SLTSV F0,V1 ; VM[i]=1 si F0<V1[i]MOVS2F F10,VM ; F10(F11)=VMLV V2,RbLD F0,cinco(R0) ; cinco contiene ‘‘5’’SGTSV F0,V1 ; VM[i]=1 si F0>V1[i]MOVS2F F12,VM ; F12(F13)=VM; Obtener F10 = F10 and F12MOVF2S VM,F10 ; VM=F10(F11)...

13-18

Page 19: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

6 SENTENCIAS DE EJECUCION CONDICIONAL.

Enmascaramiento del procesamiento:

Aritmetica enmascarada. Se efectua la operacion real sobre las componentes cuyobit en el vector de mascara es un “1”.

VM

⇒ Hay que modificar la unidad aritmetica.

...for i := 0 to 63 do

if A[i] <> 0 then A[i] := A[i] - B[i];...

LV V1,RaLV V2,RbLD F0,cero(R0) ; cero contiene ‘‘0’’SNESV F0,V1 ; VM := V1[i]<>0SUBV V1,V1,V2 ; Solo resta los i / V1[i]<>0SV Ra,V1

Todas las componentes de los vectores operando se leen→ no se reduce el tiempode ejecucion.

El DLXV no tiene enmascaramiento del procesamiento.

13-19

Page 20: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

6 SENTENCIAS DE EJECUCION CONDICIONAL.

Utilizacion de los vectores de ındices para implementar lassentencias condicionales.

CVI Vi, Rj: Crear vector de ındices a partir del VM:Vi[p] := p ∗Rj , p = 0.,63, sin incluir los p/V M [p] = 0

8R1

VM ...01001101 V2 ...,48,24,16,0

....48,40,32,24,16,8,0CVI V2,R1

POP Ri,VM: Ri← No “1” del VM

...for i := 0 to 63 do

if A[i] <> 0 then A[i] := A[i] - B[i];...

LV V1,RaLD F0,cero(R0) ; cero contiene ‘‘0’’SNESV F0,V1 ; VM contiene las componentes

; a procesarADD R1,R0,#8 ; 8 bytes por flotanteCVI V2,R1 ; V2 contiene los ındices de

; las componentes a procesarPOP R1,VM ; R1= Num. de componentes a procesarMOVI2S VLR,R1LVI V3,(Ra+V2)LVI V4,(Rb+V2)SUBV V3,V3,V4SVI (Ra+V2),V3

Comparacion entre las dos implementaciones

(Sin considerar encadenamiento ni solapamiento entre instrucciones)

Aritmetica enmascarada (pagina 19): t ≈ 5n + C1

Vectores de ındices: t ≈ 4n+4fn+C2, siendo f la fraccion de componentesque cumplen la condicion.

→ si f < 25 % es mejor el metodo basado en vectores de ındices.

13-20

Page 21: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

7 EVALUACION DE LAS PRESTACIONES VECTORIALES.

7. Evaluacion de las prestaciones de los computadoresvectoriales.

Velocidad de pico

Dado un computador vectorial segmentado con p operadores segmentados, que fun-cionan a una frecuencia de reloj f :

Vpico = p op/ciclo =pf resultados/s= pf

106 MFLOPS.

Problema: No es frecuente que todos los operadores esten en uso simultaneamente.

Evaluacion de las prestaciones a partir de un bucle vectorial

Consideremos, por ejemplo, el bucle DAXPY:

Aplicacion del strip-mining: Tbucle

Inicializacion: Tbase

n := ...;

low := 0;

VL := n mod MVL;

for j := 0 to (n div MVL) do begin

for i := low to low+VL-1 do

Y[i] := a*X[i] + Y[i]

low := low+VL;

VL := MVL;

end;

Instrucciones vectoriales: Tarranque + VL*Te

13-21

Page 22: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

7 EVALUACION DE LAS PRESTACIONES VECTORIALES.

El tiempo de ejecucion depende de cuatro terminos:

1. Codigo escalar de inicializacion del bucle. Se ocupa del calculo de direc-ciones iniciales, longitudes de los vectores, . . . . Solo se ejecuta una vez.

Valor tıpico: Tbase = 10 ciclos.

2. Codigo escalar dedicado a aplicar la tecnica del strip-mining. Se ocupa dedescomponer el vector original en secciones de tamano ≤ MV L. El numerode secciones es d n

MV Le. El codigo se ejecuta una vez por cada seccion, origi-

nando una sobrecarga Tbucle.

Valor tıpico: Tbucle = 15 ciclos.

3. Tiempo necesario para obtener el primer resultado en cada seccion del strip-mining (Tarranque).

4. Tiempo requerido para calcular cada componente del resultado (Te).

El tiempo total de ejecucion del bucle es:

T (n) = Tbase + dn

MVLeTbucle + b

n

MV Lc(Tarranque + MVL ∗ Te) +

Tarranque + (n mod MVL)Te

Operando:

T (n) = Tbase + dn

MVLe(Tbucle + Tarranque) + nTe

13-22

Page 23: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

7 EVALUACION DE LAS PRESTACIONES VECTORIALES.

Ejemplo:Bucle DAXPY, en un DLXV @ 80MHz con las siguientes caracterısticas:

Unidad de carga/almacenamiento: 11 ciclos.

Sumador: 6 ciclos.

Multiplicador: 7 ciclos.

Encadenamiento de operaciones vectoriales.

Codigo vectorial del bucle:

LV V1,RxMULTSV V2,F0,V1LV V3,RyADDV V4,V2,V3SV Rz,V4

Ignorando todas las sobrecargas, excepto la de arranque:

LV V1,Rx

MULTSV V2,F0,V1

LV V3,Ry

ADDV V4,V2,V3

SV Rz,V4

7 n

n

n

n

n11

11

11

6

T (n) = (11 + n) + (11 + n) + (11 + n) = 33 + 3n⇒

Tarranque = 33 ciclos.

Te = 3 ciclos.

Sustituyendo:T (n) = Tbase + d n

MV Le(Tbucle + Tarranque) + nTe = 10 + d n

64e(15 + 33) + 3n

Si n es elevado, podemos utilizar la aproximacion: d n64e ≈ ( n

64+ 1):

T (n) = 10 + 48

64n + 48 + 3n = 58 + 3,75n ciclos

13-23

Page 24: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

7 EVALUACION DE LAS PRESTACIONES VECTORIALES.

Medidas de prestaciones

Velocidad sostenida R:

R(n) =Operaciones

tiempoEn nuestro ejemplo:

• Operaciones = 2n.

• Tiempo = T (n) = 58 + 3,75n ciclos.

Sustituyendo:

R(n) = 2n58+3,75n

operaciones/ciclo

Velocidad alcanzada procesando vectores de longitud infinita R∞. Es la ve-locidad maxima real que se puede obtener en el computador.

R∞

= lımn→∞R(n).

En nuestro ejemplo:

R∞ = lımn→∞ R(n) = lımn→∞

2n58+3,75n

= 2

3,75= 0.53 op./ciclo @80 MHz =

42.7 MFLOPS.

Tamano mınimo de los vectores a procesar N 1

2

para alcanzar una velocidadsostenida igual o mayor que 1

2de R∞. Esta medida da una idea de la la sobre-

carga del bucle vectorial.1

2R∞ = R(N 1

2

)⇒ N 1

2

En nuestro ejemplo:1

20,53 = 2n

58+3,75n⇒ N 1

2

= 15,5 ≈ 16 componentes.

13-24

Page 25: 13. Computadores vectoriales segmentados. 14. Computadores …cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t... · 2006. 11. 1. · Caracter· sticas del procesamiento vectorial:

7 EVALUACION DE LAS PRESTACIONES VECTORIALES.

Tamano mınimo de los vectores a procesar Nv para que el modo vectorial seamas rapido que el escalar. Esta medida tambien da una idea de la sobrecargadel bucle vectorial.

T (Nv) = Tescalar ⇒ Nv.

En nuestro ejemplo:

• Supondremos que el codigo escalar se compone de un bucle, con 5 in-strucciones que implementan el cuerpo del bucle mas 10 instrucciones(de control y sobrecarga del bucle).

• Tambien supondremos que la maquina escalar esta segmentada y queaplica gestion dinamica de instrucciones, obteniendo CPI ≈ 1.

Tescalar = (10 + 5) instrucciones = 15 ciclos (1 componente).

Igulando con la expresion de T (n):

15n = 58 + 3,75n⇒ Nv = 4,71 ≈ 5 componentes.

13-25