 
     void                *d_temp_storage,
     size_t              temp_storage_bytes,
-    InputIterator     d_sample_itr,
+    SampleT             *d_samples,
+    InputIterator       d_sample_itr,
     ArrayWrapper<HistoCounter*, ACTIVE_CHANNELS> d_out_histograms,
     int                 num_samples,
     bool                debug_synchronous)


    void                *d_temp_storage,
    size_t              &temp_storage_bytes,
    InputIterator     d_sample_itr,
    HistoCounter        *d_histograms[ACTIVE_CHANNELS],
    int                 num_samples,
    cudaStream_t        stream,

    // Performance
    GpuTimer gpu_timer;
    gpu_timer.Start();
    Dispatch<BINS, CHANNELS, ACTIVE_CHANNELS>(algorithm, Int2Type<CDP>(), g_timing_iterations, d_temp_storage_bytes, d_cdp_error, d_temp_storage, temp_storage_bytes, d_samples, d_sample_itr, d_histograms, num_samples, 0, false);
    gpu_timer.Stop();
    float elapsed_millis = gpu_timer.ElapsedMillis();

