Loop perforation

Loop perforation (traducibile letteralmente come perforazione del ciclo) è una tecnica di calcolo approssimato che consente di saltare regolarmente iterazioni di un ciclo.[1]

Questa tecnica necessita di un parametro: il fattore di salto, detto comunemente detto skip factor. Lo skip factor può essere interpretato come il numero di iterazioni saltate ogni volta o come il numero di iterazioni da eseguire prima di saltarne una.

Esempi pratici

Gli esempi seguenti mostrano il risultato di una loop perforation applicata su questo codice sorgente in stile C.

for ( int i = 0; i < N; i++ ) {
     // corpo del ciclo
 }

Salta n iterazioni ogni volta

for ( int i = 0; i < N; i++ ) {
     // corpo del ciclo
     i = i + skip_factor;
 }

Salta una iterazione ogni n

int count = 0;
 for ( int i = 0; i < N; i++ ) {
     if (count == skip_factor) {
         count = 0;
     } else {
         // corpo del ciclo
         count++;
     }
 }

Note

  1. ^ (EN) Sparsh Mittal, A Survey of Techniques for Approximate Computing, in ACM Comput. Surv., vol. 48, n. 4, ACM, maggio 2016, pp. 62:1--62:33, DOI:10.1145/2893356.

Bibliografia

Voci correlate

Kembali kehalaman sebelumnya