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

Private GIT Repository
clean
[snake_gpu.git] / src / snake2D_gpu.cu
index d5a42bb88c6a2a7a473938652d2fdc423767f574..5a0d22537275229c5f475e3358d05eb324a21f98 100644 (file)
@@ -105,8 +105,7 @@ int main(int argc, char **argv)
   double h_vrais_snake, h_vrais_mem ; // image CPU de la log-vraisemblance
   bool * h_move = new bool[MAX_NODES];// image CPU du vecteur identifiant les noeuds qui ont bouge
   uint32 h_nb_pix_max, npixmax ;      // taille max des segments a tester : utile pour determiner les params d'execution
   double h_vrais_snake, h_vrais_mem ; // image CPU de la log-vraisemblance
   bool * h_move = new bool[MAX_NODES];// image CPU du vecteur identifiant les noeuds qui ont bouge
   uint32 h_nb_pix_max, npixmax ;      // taille max des segments a tester : utile pour determiner les params d'execution
-  int nnodes = 4 ;                    // 4 ou 40 pour l'instant
-  
+  int nnodes = 4 ;                      
   
   /*allocation memoire GPU  */
   cudaMalloc((void**) &d_nb_nodes, sizeof(int));
   
   /*allocation memoire GPU  */
   cudaMalloc((void**) &d_nb_nodes, sizeof(int));
@@ -131,11 +130,8 @@ int main(int argc, char **argv)
   int VERBOSE = 1 ;
   int Display = 1 ;
  
   int VERBOSE = 1 ;
   int Display = 1 ;
  
-  //snake_node * h_snake_ll;
   uint64 h_stats_snake[6];
   uint64 h_stats_snake[6];
-  //gpu2snake(d_snake, &h_snake_ll, nnodes);
-  
+    
   // variables de debug 
   int nb_move, iter, i ;
   int nb_move_total=0, nb_test_total=0 ;
   // variables de debug 
   int nb_move, iter, i ;
   int nb_move_total=0, nb_test_total=0 ;
@@ -155,7 +151,6 @@ int main(int argc, char **argv)
   
   for (iter=1; (iter<=NB_iter_max)&&(Pas>0); iter++, Pas>>=1)
     {
   
   for (iter=1; (iter<=NB_iter_max)&&(Pas>0); iter++, Pas>>=1)
     {
-        
       if (VERBOSE)
                {
                  cudaMemcpy( &h_vrais_snake, d_vrais_snake, sizeof(double), cudaMemcpyDeviceToHost);
       if (VERBOSE)
                {
                  cudaMemcpy( &h_vrais_snake, d_vrais_snake, sizeof(double), cudaMemcpyDeviceToHost);
@@ -288,7 +283,6 @@ int main(int argc, char **argv)
       if (VERBOSE) 
        {
          toc(chrono, "temps sequence move");
       if (VERBOSE) 
        {
          toc(chrono, "temps sequence move");
-         
          printf("nb deplacements    : %d\n", nb_move) ;
          printf("nb deplacements total/test   : %d/%d\n", nb_move_total, nb_test_total) ;
          printf("nb nouveaux noeuds : %d (total: %d)\n", *h_nb_nodes, nnodes) ;
          printf("nb deplacements    : %d\n", nb_move) ;
          printf("nb deplacements total/test   : %d/%d\n", nb_move_total, nb_test_total) ;
          printf("nb nouveaux noeuds : %d (total: %d)\n", *h_nb_nodes, nnodes) ;
@@ -300,26 +294,19 @@ int main(int argc, char **argv)
        toc(chrono_all, "temps move mv") ;
        cudaMemcpy( h_stats_snake, d_stats_snake, 6*sizeof(uint64), cudaMemcpyDeviceToHost);
        cudaMemcpy( &h_vrais_snake, d_vrais_snake, sizeof(double), cudaMemcpyDeviceToHost);
        toc(chrono_all, "temps move mv") ;
        cudaMemcpy( h_stats_snake, d_stats_snake, 6*sizeof(uint64), cudaMemcpyDeviceToHost);
        cudaMemcpy( &h_vrais_snake, d_vrais_snake, sizeof(double), cudaMemcpyDeviceToHost);
-       printf("\nFIN : longueur de codage de gl : %lf  (%d)\n", h_vrais_snake, h_stats_snake[0]) ;     
+       printf("\nFIN : longueur de codage gl : %lf  (%d)\n", h_vrais_snake, h_stats_snake[0]) ;     
        printf("nb noeuds : %d, nb_iter : %d\n", nnodes, iter-1) ;
        printf("nb deplacements total/test   : %d/%d\n", nb_move_total, nb_test_total) ;
   }  
   
       
   if (Display) {
        printf("nb noeuds : %d, nb_iter : %d\n", nnodes, iter-1) ;
        printf("nb deplacements total/test   : %d/%d\n", nb_move_total, nb_test_total) ;
   }  
   
       
   if (Display) {
-       /* old fashion way to draw the snake
-       gpu2snake(d_snake, &h_snake_ll, nnodes);
-       uint32 * Liste_pixel_segment = new uint32[I_dim+J_dim];
-       affiche_snake_ushort(Image_in, h_snake_ll, 255, 0, Liste_pixel_segment) ;
-       delete Liste_pixel_segment ; 
-       delete h_snake_ll;
-       */
        cudaMemcpy( h_snake, d_snake, nnodes*sizeof(snake_node_gpu), cudaMemcpyDeviceToHost);
        //affiche coordonnees
        for (int node=0; node<nnodes; node++){
        cudaMemcpy( h_snake, d_snake, nnodes*sizeof(snake_node_gpu), cudaMemcpyDeviceToHost);
        //affiche coordonnees
        for (int node=0; node<nnodes; node++){
-           printf("NODE %d  %d  %d \n", node, h_snake[node].posi, h_snake[node].posj);
+           printf("NODE %d =  ( %d , %d ) \n", node, h_snake[node].posi, h_snake[node].posj);
        }
        }
-       // draw only the nodes with + marks
+       // dessine seulement les  nodes avec des +
        dessine_snake(h_snake, nnodes, Image_in, 10);
        imagesc_ushort(Image_in, I_dim, J_dim) ;
   }
        dessine_snake(h_snake, nnodes, Image_in, 10);
        imagesc_ushort(Image_in, I_dim, J_dim) ;
   }
@@ -342,6 +329,6 @@ int main(int argc, char **argv)
   cudaFree(d_listes_pixels);
   cudaFree(d_contribs_segments_blocs);
   cudaFree(d_move);
   cudaFree(d_listes_pixels);
   cudaFree(d_contribs_segments_blocs);
   cudaFree(d_move);
-  return 1 ;
+  return 0 ;
 }
 
 }