     vote::dp_call_eval_chosen
         <<<1,1,0,_stream>>>
         ( _meta,
-          _interm_inner_points.dev,    // buffer
-          _voters.dev,  // output
-          _v_chosen_flow_length, // input
-          _v_chosen_idx.dev ); // input
+          _voters.dev,
+          _v_chosen_flow_length,
+          _v_chosen_idx.dev,
+          _interm_inner_points.dev );
     POP_CHK_CALL_IFSYNC;
     return true;
 }

// Excellent easy speedup possible by using threadIdx.x for parallel checking
// of the voter array in count_winners!!!

namespace popart {

namespace vote {

__device__ inline
int count_winners( FrameMetaPtr&                   meta,
                   const int                       inner_point_index,
                   TriplePoint*                    inner_point,
                   const DevEdgeList<TriplePoint>& voters,
                   const float*                    chosen_flow_length,
                   const DevEdgeList<int>          chosen_idx )
{
    int   winner_size = 0;
    float flow_length = 0.0f;

    /* This loop looks dangerous, but it is actually faster than
     * a manually partially unrolled loop.
     */
    const int voter_list_size = meta.list_size_voters();
    for( int i=0; i<voter_list_size; i++ ) {
        int my_vote = chosen_idx.ptr[i];
        if( my_vote == inner_point_index ) {
            winner_size += 1;
            // flow_length += voters.ptr[i].chosen_flow_length;
            flow_length += chosen_flow_length[i];
        }
    }
    inner_point->_winnerSize = winner_size;
    inner_point->_flowLength = flow_length / winner_size;
    return winner_size;
}

/* For all chosen inner points, compute the average flow length and the

     * value d_num_selected_out from the device before the voting
     * step.
     */
// #ifndef NDEBUG
#if 0
    _voters.copySizeFromDevice( _stream, EdgeListCont );
#endif
    _interm_inner_points.copySizeFromDevice( _stream, EdgeListWait );

// #ifndef NDEBUG
#if 0
    cerr << "Debug voting (without separable compilation)"
         << " # inner points: " << _interm_inner_points.host.size
         << " # voters      : " << _voters.host.size << endl;
