Perforacja pętelkowa
Perforacja pętli jest przybliżoną techniką obliczeniową , która pozwala regularnie pomijać niektóre iteracje pętli.
Opiera się na jednym parametrze : szybkości perforacji . Szybkość perforacji można interpretować jako liczbę iteracji do pominięcia za każdym razem lub liczbę iteracji do wykonania przed pominięciem jednej.
Warianty perforacji pętli obejmują te, które pomijają iteracje deterministycznie w regularnych odstępach czasu, te, które pomijają iteracje na początku lub na końcu pętli, oraz te, które pomijają losową próbkę iteracji. Kompilator może wybrać wariant perforacji w czasie kompilacji lub uwzględnić oprzyrządowanie, które umożliwia systemowi wykonawczemu adaptacyjne dostosowanie strategii perforacji i szybkości perforacji, aby spełnić cel dokładności od końca do końca.
Techniki perforacji pętli zostały po raz pierwszy opracowane przez starszych naukowców z MIT, Martina C. Rinarda i Steliosa Sidiroglou.
Przykłady kodu
Poniższe przykłady przedstawiają wynik perforacji pętli zastosowanej w tym kodzie źródłowym podobnym do C
0
for ( int i = ; i < N ; i ++ ) { // rób rzeczy }
Pomiń n iteracji za każdym razem
0
for ( int i = ; i < N ; i ++ ) { // rób rzeczy i = i + pomiń_czynnik ; }
Pomiń jedną iterację po n
0
0
0
int liczba = ; for ( int i = ; ja < N ; i ++ ) { if ( liczba == współczynnik_pominięcia ) { liczba = ; } else { // czy rzeczy się liczą ++ ; } }
Zobacz też