   
   __syncthreads();
 
-  printf("tid %d blockId %d value %f\n",threadIdx.x, blockIdx.x, 
-    sArray[threadIdx.x] );
+//  printf("tid %d blockId %d value %f\n",threadIdx.x, blockIdx.x, 
+ //   sArray[threadIdx.x] );
 /* do the final reduction in SMEM */
-
+  //printf("blockDim is %d\n",blockDim.x);
   for( int i = blockDim.x/2; i > 0; i = i / 2 )
   {
     if( threadIdx.x < i )
     {
       sArray[threadIdx.x] += sArray[threadIdx.x + i];
-      printf("tid %d, sArray %f\n",threadIdx.x, sArray[threadIdx.x] );
+   //   printf("tid %d, i %d, sArray %f\n",threadIdx.x, i,sArray[threadIdx.x] );
     } /* end if */
     __syncthreads();
   } /* end for */
 
   if( threadIdx.x == 0 ) out[blockIdx.x] = sArray[0]; 
-  if( threadIdx.x == 0 ) printf("out is %f\n",out[blockIdx.x]);
+  //if( threadIdx.x == 0 ) printf("out is %f\n",out[blockIdx.x]);
 
   return;
 


  for( int i = 0; i < size; i++ )
  {
   h_in[i] = i;//floatType_t( rand() ) / ( floatType_t (RAND_MAX) + 1.0 );
  }

  h_out      = 0.0;


/* calculate block and grid sizes */

  dim3 threads1( THREADS_PER_BLOCK, 1, 1 );
  
  int blk = min( (size / threads1.x), tempArraySize );
  dim3 blocks( blk, 1, 1);

  dim3 threads2( min(blocks.x,threads1.x), 1, 1 );

/* start the timers */

