title: Strided reduction by CUDA Thrust
body: <p>I have an array of vertices with this kind of structure:</p>
  
  <p><code>[x0, y0, z0, empty float, x1, y1, z1, empty float, x2, y2, z2, empty float, ...]</code></p>
  
  <p>I need to find <code>minX</code>, <code>minY</code>, <code>minZ</code>, <code>maxX</code>, <code>maxY</code> and <code>maxZ</code> using CUDA. I wrote a proper reduction algorithm, but it occurs to be a little too slow. I decided to use the THRUST library. There is a highly optimized <code>reduce()</code>, or even better <code>minmax_element()</code>, method which is a way to find max and min of an array simultaneously, but I can't find a fast way to use then only every <code>4</code>th index. Copying data to <code>3</code> separated arrays is not a solution I'm looking for.</p>
  
  <p><em>Is there a way (some kind of tricks with Thrust iterators or something like this) to pass a stride to <code>reduce()</code>?</em></p>