Nous pouvons vérifier qu'il n'y à pas eut de problème pendant l'exécution, un problème d'allocation, ou d'exécution du kernel :
1
2
3
4
5
6
7
8
9
10
11
|
void checkNoErr(int linenr, float * d_sum, float * d_bl, float * d_in, float * h_in){
cudaError_t err = cudaGetLastError();
if (err != cudaSuccess) {
printf("Erreur ligne %d : %s \n", linenr, cudaGetErrorString(err));
cudaFree(d_sum);
cudaFree(d_bl);
cudaFree(d_in);
cudaFree(h_in);
abort();
}
}
|
On désalloue les tableaux que l'on a alloué sur le GPU, pour ne pas gaspiller de la mémoire à chaque fois que l'on redémarre le programme, car le débogage peut être long.
|