HPC Magazine February 2014 - Discovering OpenACC 2.0 - part II

Listing 9: Typical example of the tile clause applied to a 2D loop nest.


#pragma acc loop gang worker tile(8,16) num_workers(64) 
for (i=0 ; i<1024; i++) 
  for (j=0 ; j<512; j++)
    {
      X[i][j] = 
        c11*Y[i-1][j-1] + c12*Y[i-1][j-1] + c13*Y[i-1][j-1] +
        c21*Y[i][j-1] + c22*Y[i][j] + c23*Y[i][j-1] +
        c31*Y[i+1][j-1] + c32*Y[i-1][j-1]  + c33*Y[i+1][j-1] ;
    }