Индустрия программирования


Параллелизм на уровне выполнения - часть 2



Скорость работы цикла: 6 тактов на элемент
Развернутый 4 раза цикл без оптимизации:

Loop: LD F0,0(R1)

ADDD F4,F0,F2

SD 0(R1),F4
;выбрасывается SUB1 и BNEZ

LD F6,-8(R1)

ADDD F8,F6,F2

SD -8(R1),F8
;выбрасывается SUB1 и BNEZ

LD F10,-16(R1)

ADDD F12,F10,F2

SD -16(R1),F12
;выбрасывается SUB1 и BNEZ

LD F14,-24(R1)

ADDD F16,F14,F2

SD -24(R1),F16

SUB1 R1,R1,#32

BNEZ R1, Loop

Скорость работы цикла: 6.8 такта на элемент
Развернутый 4 раза цикл после оптимизации:

Loop: LD F0,0(R1)

LD F6,-8(R1)

LD F10,-16(R1)

LD F14,-24(R1)

ADDD F4,F0,F2

ADDD F8,F6,F2

ADDD F12,F10,F2

ADDD F16,F14,F2

SD 0(R1),F4

SD -8(R1),F8

SD -16(R1),F12

SUB1 R1,R1,#32

BNEZ R1, Loop

SD 8(R1),F16
; 8 - 32 = -24

Скорость работы цикла: 3.5 такта на элемент



Начало  Назад  Вперед



Книжный магазин