- (Cálculo de Speedup Vetorial). Um loop DAXPY (
) é executado em:
Versão escalar: 12 instruções por elemento, 1000 elementos,
.
Versão vetorial: 6 instruções totais (independentes do tamanho do vetor), 3 comboios (chimes), vetor de 64 elementos. Calcule:
a) Número total de ciclos na versão escalar.
b) Número total de ciclos na versão vetorial para 1000 elementos.
c) Speedup obtido com o vetorização.
Versão vetorial: 6 instruções totais (independentes do tamanho do vetor), 3 comboios (chimes), vetor de 64 elementos. Calcule:
a) Número total de ciclos na versão escalar.
b) Número total de ciclos na versão vetorial para 1000 elementos.
c) Speedup obtido com o vetorização.
Passo 1
O enunciado trata do cálculo de ciclos e speedup para o loop DAXPY
.
Na versão escalar, cada elemento gera instruções, temos
elementos e
.
Na versão vetorial, o laço é feito com instruções (independente de
), vetor de comprimento
e pipeline com
chimes (ou seja, tempo de startup de
ciclos por instrução). Vamos achar
. o total de ciclos na versão escalar;
. o total de ciclos na versão vetorial para
elementos;
. o speedup definido por
Na versão escalar, cada elemento gera
Na versão vetorial, o laço é feito com
Passo 2
Ciclos na versão escalar: para cada um dos
elementos são executadas
instruções e cada instrução consome
ciclo. Logo,
Passo 3
Ciclos na versão vetorial:
. Número de vetores necessários:
startup de
Passo 4
Speedup
razão entre os tempos:
Resposta
a)
ciclos na versão escalar.
b) ciclos na versão vetorial.
c) Speedup .
b)
c) Speedup