<ahref="zip__tile__iterator_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">/***************************************************************************************************</span></div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> * Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.</span></div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment"> * Redistribution and use in source and binary forms, with or without modification, are permitted</span></div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment"> * provided that the following conditions are met:</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> * * Redistributions of source code must retain the above copyright notice, this list of</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> * conditions and the following disclaimer.</span></div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> * * Redistributions in binary form must reproduce the above copyright notice, this list of</span></div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment"> * conditions and the following disclaimer in the documentation and/or other materials</span></div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment"> * provided with the distribution.</span></div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> * * Neither the name of the NVIDIA CORPORATION nor the names of its contributors may be used</span></div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> * to endorse or promote products derived from this software without specific prior written</span></div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> * permission.</span></div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> *</span></div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR</span></div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND</span></div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE</span></div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> <spanclass="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,</span></div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;</span></div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,</span></div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="comment"> * STRICT LIABILITY, OR TOR (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div><divclass="line"><aname="
<divclass="ttc"id="structcutlass_1_1ZipTileIterator_1_1Params_html_a6eb742dc39b1d776cf5d62719835fe26"><divclass="ttname"><ahref="structcutlass_1_1ZipTileIterator_1_1Params.html#a6eb742dc39b1d776cf5d62719835fe26">cutlass::ZipTileIterator::Params::second</a></div><divclass="ttdeci">Second::Params second</div><divclass="ttdoc">Parameters of second iterator. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:57</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a45a8ba275f8d4f71deb102ad46712b3e"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a45a8ba275f8d4f71deb102ad46712b3e">cutlass::ZipTileIterator::ZipTileIterator</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator(Params const &_params, Coord< 3 > const &threadblock_offset=make_Coord(0, 0, 0))</div><divclass="ttdoc">Constructs a zip iterator from params. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:106</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a18ed76e6be1a02d0229cdf1d6528e34f"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a18ed76e6be1a02d0229cdf1d6528e34f">cutlass::ZipTileIterator::store_post_increment</a></div><divclass="ttdeci">CUTLASS_DEVICE void store_post_increment(Fragment const &fragment, Coord< 4 > const &offset)</div><divclass="ttdoc">Stores a fragment and increments without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:193</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a3020bcd0a49efad674ca5539ea1c96c0"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a3020bcd0a49efad674ca5539ea1c96c0">cutlass::ZipTileIterator::load_post_increment</a></div><divclass="ttdeci">CUTLASS_DEVICE void load_post_increment(Fragment &fragment, Coord< 4 > const &offset)</div><divclass="ttdoc">Loads a fragment and increments without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:163</div></div>
<divclass="ttc"id="coord_8h_html"><divclass="ttname"><ahref="coord_8h.html">coord.h</a></div><divclass="ttdoc">A Coord is a coordinate of arbitrary rank into a tensor or matrix. </div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a884983cd1df81739fc971b46697b851c"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a884983cd1df81739fc971b46697b851c">cutlass::ZipTileIterator::store</a></div><divclass="ttdeci">CUTLASS_DEVICE void store(Fragment const &fragment) const</div><divclass="ttdoc">Stores a fragment without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:201</div></div>
<divclass="ttc"id="namespacecutlass_html_a7419519fa453a121dfa5f26bf87318d9"><divclass="ttname"><ahref="namespacecutlass.html#a7419519fa453a121dfa5f26bf87318d9">cutlass::make_Coord</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Coord< 1 > make_Coord(int _0)</div><divclass="ttdoc">Helper to make a 2-element coordinate. </div><divclass="ttdef"><b>Definition:</b> coord.h:368</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a200a4e88ee6d23dcc80e974c77f8fa1f"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a200a4e88ee6d23dcc80e974c77f8fa1f">cutlass::ZipTileIterator::operator+=</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & operator+=(Coord< 3 > const &offset)</div><divclass="ttdoc">Adds a vector offset to the underlying iterators. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:263</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_ab0f93878bbe5aac072450f9bf1dd8b64"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#ab0f93878bbe5aac072450f9bf1dd8b64">cutlass::ZipTileIterator::initialize_predicates</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE void initialize_predicates(PredicateIterator predicate_it, PredicateFunctor const &functor, Coord< 3 > const &block_offset)</div><divclass="ttdoc">Initializes a predicate vector using an arbitrary predicate functor. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:144</div></div>
<divclass="ttc"id="structcutlass_1_1ZipTileIterator_1_1Params_html_a5dd69883d6b3f16fe28ebfe79235743e"><divclass="ttname"><ahref="structcutlass_1_1ZipTileIterator_1_1Params.html#a5dd69883d6b3f16fe28ebfe79235743e">cutlass::ZipTileIterator::Params::first</a></div><divclass="ttdeci">First::Params first</div><divclass="ttdoc">Parameters of first iterator. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:54</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a95b8db4af9228beed273669b3b0b12fe"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a95b8db4af9228beed273669b3b0b12fe">cutlass::ZipTileIterator::load_post_increment</a></div><divclass="ttdeci">CUTLASS_DEVICE void load_post_increment(Fragment &fragment)</div><divclass="ttdoc">Loads a fragment and increments without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:156</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a9d70b24bf38122c0fea49558c6f6b344"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a9d70b24bf38122c0fea49558c6f6b344">cutlass::ZipTileIterator::ZipTileIterator</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator(Params const &_params, TensorRef const &ref)</div><divclass="ttdoc">Constructs a zip iterator from iterator instances. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:119</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a60ba516d7382cb7788d5430023f7fc44"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a60ba516d7382cb7788d5430023f7fc44">cutlass::ZipTileIterator::operator+=</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & operator+=(int count)</div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:260</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_aa617653e75535fe13aafa80bc4cc9cc4"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#aa617653e75535fe13aafa80bc4cc9cc4">cutlass::ZipTileIterator::store</a></div><divclass="ttdeci">CUTLASS_DEVICE void store(Fragment const &fragment, PredicateIterator pred_it) const</div><divclass="ttdoc">Loads a fragment with predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:241</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a1dea96f5cf56aade14bd815aee91d09c"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a1dea96f5cf56aade14bd815aee91d09c">cutlass::ZipTileIterator::TensorRef</a></div><divclass="ttdeci">ZipTensorRef< typename First::TensorRef, typename Second::TensorRef > TensorRef</div><divclass="ttdoc">Tensor reference. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:84</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a7bae0f9b789e75bb154c5f37db50e14c"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a7bae0f9b789e75bb154c5f37db50e14c">cutlass::ZipTileIterator::operator-=</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & operator-=(int count)</div><divclass="ttdoc">Decrements to previous tile. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:280</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a961a340f902542f3000dc80e852958f2"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a961a340f902542f3000dc80e852958f2">cutlass::ZipTileIterator::store_post_increment</a></div><divclass="ttdeci">CUTLASS_DEVICE void store_post_increment(Fragment const &fragment)</div><divclass="ttdoc">Stores a fragment and increments without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:186</div></div>
<divclass="ttc"id="zip__fragment_8h_html"><divclass="ttname"><ahref="zip__fragment_8h.html">zip_fragment.h</a></div><divclass="ttdoc">Models a pair of fragments. </div></div>
<divclass="ttc"id="structcutlass_1_1ZipFragment_html_aea444ab3b52b6f0e994401cf2e0b7f3c"><divclass="ttname"><ahref="structcutlass_1_1ZipFragment.html#aea444ab3b52b6f0e994401cf2e0b7f3c">cutlass::ZipFragment::first</a></div><divclass="ttdeci">First first</div><divclass="ttdoc">First fragment object. </div><divclass="ttdef"><b>Definition:</b> zip_fragment.h:61</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a53045f40d203a805af9c92fa0b5bc684"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a53045f40d203a805af9c92fa0b5bc684">cutlass::ZipTileIterator::load_post_increment</a></div><divclass="ttdeci">CUTLASS_DEVICE void load_post_increment(Fragment &fragment, PredicateIterator pred_it)</div><divclass="ttdoc">Loads a fragment and increments, using predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:220</div></div>
<divclass="ttc"id="zip__tensor__ref_8h_html"><divclass="ttname"><ahref="zip__tensor__ref_8h.html">zip_tensor_ref.h</a></div><divclass="ttdoc">Defines a structure containing a pair of TensorRef-like objects. </div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a31553842afd1cfd5a18a2fd6c39e17b5"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a31553842afd1cfd5a18a2fd6c39e17b5">cutlass::ZipTileIterator::ZipTileIterator</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator(First const &_first, Second const &_second)</div><divclass="ttdoc">Constructs a zip iterator from iterator instances. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:111</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a47d270fc4a119d7b95b2d5dd3ee5b87b"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a47d270fc4a119d7b95b2d5dd3ee5b87b">cutlass::ZipTileIterator::operator++</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & operator++()</div><divclass="ttdoc">Increments to next tile. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:258</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html">cutlass::ZipTileIterator</a></div><divclass="ttdoc">Constructs an iterator from a pair of iterators. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:43</div></div>
<divclass="ttc"id="pair_8h_html"><divclass="ttname"><ahref="pair_8h.html">pair.h</a></div><divclass="ttdoc">Defines a pair<></div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a425b4a4f2e66f3ff5960742d19d06bc2"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a425b4a4f2e66f3ff5960742d19d06bc2">cutlass::ZipTileIterator::store</a></div><divclass="ttdeci">CUTLASS_DEVICE void store(Fragment const &fragment, Coord< 4 > const &offset) const</div><divclass="ttdoc">Stores a fragment without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:208</div></div>
<divclass="ttc"id="structcutlass_1_1platform_1_1Pair_html"><divclass="ttname"><ahref="structcutlass_1_1platform_1_1Pair.html">cutlass::platform::Pair</a></div><divclass="ttdoc">Constructs an iterator from a pair of iterators. </div><divclass="ttdef"><b>Definition:</b> pair.h:39</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a23b72b086f350dfe07cff22ac010c45c"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a23b72b086f350dfe07cff22ac010c45c">cutlass::ZipTileIterator::load</a></div><divclass="ttdeci">CUTLASS_DEVICE void load(Fragment &fragment) const</div><divclass="ttdoc">Loads a fragment without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:171</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a4c9997488be2f09b9653d8ef8ac06c2b"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a4c9997488be2f09b9653d8ef8ac06c2b">cutlass::ZipTileIterator::load</a></div><divclass="ttdeci">CUTLASS_DEVICE void load(Fragment &fragment, PredicateIterator pred_it) const</div><divclass="ttdoc">Loads a fragment with predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:227</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a6f2f86a1d23ccbaed285550a1d1f92e6"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a6f2f86a1d23ccbaed285550a1d1f92e6">cutlass::ZipTileIterator::decrement</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & decrement(int count=1)</div><divclass="ttdoc">Increments store iterator to previous tile. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:270</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a3d22dab34b2abd0d05c00668f8591151"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a3d22dab34b2abd0d05c00668f8591151">cutlass::ZipTileIterator::operator--</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & operator--()</div><divclass="ttdoc">Increments to subsequent tile. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:277</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_affc3b73f32df6caa41a841a630ffdf81"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#affc3b73f32df6caa41a841a630ffdf81">cutlass::ZipTileIterator::add_pointer_offset</a></div><divclass="ttdeci">CUTLASS_DEVICE void add_pointer_offset(LongIndex offset)</div><divclass="ttdoc">Adds an offset to both iterators. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:283</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a808e06560609aa5b7bb693ec79a3aa57"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a808e06560609aa5b7bb693ec79a3aa57">cutlass::ZipTileIterator::ZipTileIterator</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator(TensorRef const &ref)</div><divclass="ttdoc">Constructs a zip iterator from iterator instances. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:115</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a738f23c02f4a7437981d9e3e22470808"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a738f23c02f4a7437981d9e3e22470808">cutlass::ZipTileIterator::increment</a></div><divclass="ttdeci">CUTLASS_DEVICE ZipTileIterator & increment(int count=1)</div><divclass="ttdoc">Increments store iterator to next tile. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:251</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a3a2cae47533c1122eb8ec404473a0d9e"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a3a2cae47533c1122eb8ec404473a0d9e">cutlass::ZipTileIterator::store_post_increment</a></div><divclass="ttdeci">CUTLASS_DEVICE void store_post_increment(Fragment const &fragment, PredicateIterator pred_it)</div><divclass="ttdoc">Loads a fragment and increments, using predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:234</div></div>
<divclass="ttc"id="classcutlass_1_1ZipTileIterator_html_a9a3f2f913ee73f0c04e74ec89c6c5cbb"><divclass="ttname"><ahref="classcutlass_1_1ZipTileIterator.html#a9a3f2f913ee73f0c04e74ec89c6c5cbb">cutlass::ZipTileIterator::load</a></div><divclass="ttdeci">CUTLASS_DEVICE void load(Fragment &fragment, Coord< 4 > const &offset) const</div><divclass="ttdoc">Loads a fragment without predicates. </div><divclass="ttdef"><b>Definition:</b> zip_tile_iterator.h:178</div></div>