Loop perforation

tecnica di calcolo approssimato che consente di saltare regolarmente iterazioni di un ciclo

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

modifica

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

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

Salta una iterazione ogni n

modifica
int count = 0;
 for ( int i = 0; i < N; i++ ) {
     if (count == skip_factor) {
         count = 0;
     } else {
         // corpo del ciclo
         count++;
     }
 }
  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

modifica

Voci correlate

modifica