5.4 Fonction qui garantie qu'il n'y a pas eu de problème

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.