Beruflich Dokumente
Kultur Dokumente
Escriba el código vectorial que realizaría las operaciones ubicadas en el interior del bucle y calcule Tn , T1 0 0 0 ,
R1 0 0 0 y R en los siguientes casos:
a) Sin considerar encadenamiento de resultados.
b) Permitiendo encadenamientos.
c) Considerando encadenamientos y dos unidades de multiplicación.
Solución
La secuencia de ejecución de los cinco convoyes si se considera que VLR es 64 es la que se muestra en la
siguiente figura.
Telemento = 5 ciclos
12 64
LV
7 64
MULTSV
7 64
MULTSV
6 64
ADDV
64 12
SV
Dado que hay cinco convoyes, Telemento es 5 ciclos y el Tarranque total es igual a la suma de los tiempos de
arranque visibles de los cinco convoyes. Esto es
1/4
Sustituyendo los valores conocidos de Tarranque y Telemento en la expresión que determina el tiempo de
ejecución de un bucle vectorizado para vectores de longitud n se tiene
n
Tn 10 15 44 5 n
64
1000
T1000 10 15 44 5 1000
64
T1000 10 16 15 44 5 1000
T1000 5954 ciclos
3 1000 3000
R1000 0.5039 FLOP ciclo
T1000 5954
3 n
R lim
n T
n
3 n
R lim
n
n
10 15 44 5 n
64
Para simplificar los cálculos, la expresión n / 64 se puede reemplazar por una cota superior dada por
n / 64 1 . Sustituyendo esta cota en R y teniendo en cuenta que el número de operaciones vectoriales que se
realizan en el bucle DAXPY son dos, una multiplicación y una suma, se tiene
3 n
R lim
n n
10 1 15 44 5 n
64
3 n
R lim
n 69 5,9219 n
R 0,5066 FLOP/ciclo
Para expresar R en FLOPS, habría que multiplicar el valor en FLOP/ciclo por la frecuencia del procesador. Se
tendría así
b) Dado que ahora es posible encadenar los resultados de las unidades, la organización del código vectorial en
convoyes quedaría de la siguiente forma:
Telemento= 2 ciclos
12 64
LV
7 64
MULTSV
7 64
MULTSV
6 64
ADDV
64 12
SV
El Telemento ha pasado a ser de 2 ciclos dado que ahora se tienen dos convoyes. El Tarranque total se obtiene
de sumar los tiempos de arranque visibles de las unidades funcionales. Si se analiza la figura se tiene
n
Tn 10 15 44 2 n
64
1000
T1000 10 15 44 2 1000
64
T1000 10 16 15 44 2 1000
T1000 2954 ciclos
3 1000 3 1000
R1000 1,0156 FLOP ciclo
T1000 2954
3 n
R lim
n T
n
3 n
R lim
n n
10 15 44 2 n
64
3 n
R lim
n n
10 ( 1) 15 44 2 n
64
3 n
R lim
n 69 2,9219 n
R 1,0267 FLOP/ciclo
Claramente se aprecia la mejora en el rendimiento del procesador gracias al encadenamiento de los resultados
entre las unidades funcionales.
3/4
c) Ahora es posible encadenar los resultados de las unidades y se dispone de dos unidades de multiplicación:
Telemento= 2 ciclos
12 64
LV
7 64
MULTSV
7 64
MULTSV
6 64
ADDV
64 12
SV
El Telemento ha pasado a ser de 2 ciclos dado que ahora se tienen dos convoyes. El Tarranque total se obtiene
de sumar los tiempos de arranque visibles de las unidades funcionales. Si se analiza la figura se tiene
n
Tn 10 15 37 2 n
64
1000
T1000 10 15 37 2 1000
64
T1000 10 16 15 37 2 1000
T1000 2842 ciclos
3 1000 3 1000
R1000 1,0555 FLOP ciclo
T1000 2842
3 n
R lim
n T
n
3 n
R lim
n n
10 15 37 2 n
64
4/4
3 n
R lim
n n
10 ( 1) 15 37 2 n
64
3 n
R lim
n 62 2,8125 n
R 1,066 FLOP ciclo
5/4