 
         initialize_pairwise_diff_stats<<< 1, 32 >>>( dStats );
 
-        pairwise_difference_kernel<<< 10, 32 >>>( seqs, dSubPop, dStats);
+        pairwise_difference_kernel<<< m_blocks, m_threads >>>( seqs, dSubPop, dStats);
+
+        finalize_pairwise_diff_stats<<< 1, 32 >>>( dStats );
+    }
+
+    void eval2( device_sequence_space< int_type > * seqs, unsigned int N ) {
+        create_subpopulation<<< 1, 1024 >>>( dSubPop, N );
+
+        initialize_pairwise_diff_stats<<< 1, 32 >>>( dStats );
+
+        pairwise_difference_kernel2<<< m_blocks, m_threads >>>( seqs, dSubPop, dStats);
 
         finalize_pairwise_diff_stats<<< 1, 32 >>>( dStats );
     }

}

struct test_kernel {
    test_kernel() {
        create_space( dSubPop );
        assert( cudaMalloc( (void **)&dStats, sizeof(pairwise_diff_stats) ) == cudaSuccess);
    }


    basic_data_space< int_type > *  dSubPop;
    pairwise_diff_stats         *  dStats;

    dim3    m_threads, m_blocks;
};

void upload_sequences( device_sequence_space< int_type > & seqs, device_sequence_space< int_type > *dSeqs ) {
