]> AND Private Git Repository - snake_gpu.git/blobdiff - src/lib_gpu.cu
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Test diagonales naif
[snake_gpu.git] / src / lib_gpu.cu
index 73571f2cadfa8d663581093747d0edbc75c96fff..1bbd61d5ca8b4b564b1984762ace1cf1c245d7b6 100644 (file)
@@ -235,19 +235,23 @@ void cuda_init_img_cumul(unsigned short ** img_in, int H, int L, int nb_nodes,
   tic(&chrono, NULL);
 
   int MAX_DIAGOS = 1024*65536 ;
-  int ret, Q = 100 ;
+  int ret, Q = 120 ;
+  int * d_n_diagos, h_n_diagos;
   uint4 * d_diagos_snake ;
   uint4 * h_diagos_snake = new uint4[MAX_DIAGOS];
  
-  
-  ret = cudaMalloc( (void**) &d_diagos_snake, MAX_DIAGOS*sizeof(uint4)) ;
 
-  genere_diagos_rectangle<<<1,1>>>(d_diagos_snake, H,L,Q);
-  
+  cudaMalloc( (void**) &d_n_diagos,  sizeof(int)) ;
+  cudaMalloc( (void**) &d_diagos_snake, MAX_DIAGOS*sizeof(uint4)) ;
+
+  genere_diagos_rectangle<<<1,1>>>(d_diagos_snake, H,L,Q, d_n_diagos);
+
+  cudaMemcpy( &h_n_diagos, d_n_diagos, sizeof(int), cudaMemcpyDeviceToHost) ;
   ret = cudaMemcpy( h_diagos_snake, d_diagos_snake, MAX_DIAGOS*sizeof(uint4), cudaMemcpyDeviceToHost) ;
-  //cudaSuccess, cudaErrorInvalidValue, cudaErrorInvalidDevicePointer, cudaErrorInvalidMemcpyDirection
-  
-  printf("COPY : %d, MAX_DIAGOS = %d\n", ret, MAX_DIAGOS);
+
+  toc(chrono, "\tCalcul diagos");
+
+  printf("COPY : %s, DIAGOS = %d / %d\n", (ret==0)?"OK":"ERREUR", h_n_diagos,MAX_DIAGOS);
   for (int d=0; d<200;d++){
        printf("| (%d,%d)-(%d,%d) ", h_diagos_snake[d].x, h_diagos_snake[d].y, h_diagos_snake[d].z, h_diagos_snake[d].w );
   }