HPC Magazine Février 2014 - Maîtriser OpenACC 2.0 (partie 2)
Listing 6 - Définition en C d’une routine OpenACC externe.
// ---- in file sum.c #pragma acc routine worker void sum(int n , float *A) { int i ; float s = 0.0f ; #pragma acc worker reduction(+:s) for (i=0;i<n;i++) { s = s + A[i] ; } return s ; } //--- in file sum.h #pragma acc routine worker void sum(int n , float *A) ; //--- in file main.c float X[100][200] , Y[100] ; //... #pragma acc gang for( j=0; j<100; j++ ) { Y[j] = sum( 200 , X[j] ) ; } //...