 
 __global__
 void dp_call_eval_chosen( FrameMetaPtr             meta,
-                          DevEdgeList<int>         inner_points,      // input
                           DevEdgeList<TriplePoint> voters, // modified input
                           const float*             chosen_flow_length, // input
-                          DevEdgeList<int>         chosen_idx ) // input
+                          DevEdgeList<int>         chosen_idx,
+                          DevEdgeList<int>         inner_points ) // input
 {
     int listsize = meta.list_size_inner_points();
 
-    dim3 block( 32, 1, 1 );
-    dim3 grid( grid_divide( listsize, 32 ), 1, 1 );
+    dim3 block( 32, 32, 1 );
+    dim3 grid ( grid_divide( listsize, CONC_POINTS ), 1, 1 );
 
     vote::eval_chosen
         <<<grid,block>>>
         ( meta,
-          inner_points,
           voters,
           chosen_flow_length,
-          chosen_idx );
+          chosen_idx,
+          inner_points );
 }
 
 } // namespace vote

    /* Add number of voters to chosen inner points, and
     * add average flow length to chosen inner points.
     */
    dim3 block( 32, 1, 1 );
    dim3 grid ( grid_divide( _interm_inner_points.host.size, 32 ), 1, 1 );

    vote::eval_chosen
        <<<grid,block,0,_stream>>>
        ( _meta,
          _interm_inner_points.dev,
          _voters.dev,
          _v_chosen_flow_length,
          _v_chosen_idx.dev );
    POP_CHK_CALL_IFSYNC;

    return true;

__host__
bool Frame::applyVoteEval( )
{
#ifndef NDEBUG
    _interm_inner_points.copySizeFromDevice( _stream, EdgeListCont );
    _voters.copySizeFromDevice( _stream, EdgeListWait );
    cerr << "Debug voting (with separable compilation)"
         << " # seed indices 2: " << _interm_inner_points.host.size
