<ahref="tile__stream_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="l00022"
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_a5b7161b2b97100c13c2c5009edd2a6be"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#a5b7161b2b97100c13c2c5009edd2a6be">cutlass::TileLoadStream::fragment</a></div><divclass="ttdeci">CUTLASS_DEVICE TransformedFragment & fragment()</div><divclass="ttdoc">Accesses the loaded, transformed fragment. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:134</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileStoreStream_html_a1d33da4593ae68e6301df54b310a70a0"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileStoreStream.html#a1d33da4593ae68e6301df54b310a70a0">cutlass::PredicatedTileStoreStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy(Fragment const &frag)</div><divclass="ttdoc">Stores the fragment and increments the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:364</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_ad6ff1786f85d64053ece0ac8ae9a92b5"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#ad6ff1786f85d64053ece0ac8ae9a92b5">cutlass::TileStoreStream::fragment</a></div><divclass="ttdeci">CUTLASS_DEVICE Fragment & fragment()</div><divclass="ttdoc">Accesses the transformed fragment. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:237</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_aed4e6a6f1bc125ea40ae04fb120d6a23"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#aed4e6a6f1bc125ea40ae04fb120d6a23">cutlass::TileLoadStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy()</div><divclass="ttdoc">Loads a tile and increments the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:122</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileStoreStream_html_ae84437a66097189406c2090d88a79350"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileStoreStream.html#ae84437a66097189406c2090d88a79350">cutlass::PredicatedTileStoreStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy()</div><divclass="ttdoc">Stores the fragment and increments the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:357</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_aa0f3c75e59054d6229de159474c9c978"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#aa0f3c75e59054d6229de159474c9c978">cutlass::TileStoreStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy(Fragment const &frag)</div><divclass="ttdoc">Stores a fragment and increments the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:226</div></div>
<divclass="ttc"id="tile__iterator_8h_html"><divclass="ttname"><ahref="tile__iterator_8h.html">tile_iterator.h</a></div><divclass="ttdoc">Defines the Tile Traits concept and iterators for loading and storing to tiles efficiently. </div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_a2255d760e812cfe8e31f114cdb5793fe"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#a2255d760e812cfe8e31f114cdb5793fe">cutlass::TileStoreStream::TensorRef</a></div><divclass="ttdeci">Iterator::TensorRef TensorRef</div><divclass="ttdoc">Tensor reference expected by the underlying iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:159</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="structcutlass_1_1TileStoreStream_html"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html">cutlass::TileStoreStream</a></div><divclass="ttdoc">Generic stream for transforming and storing fragments. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:141</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileLoadStream_html"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileLoadStream.html">cutlass::PredicatedTileLoadStream</a></div><divclass="ttdoc">Generic stream for loading and transforming fragments. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:251</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileLoadStream_html_adeb35451885c1c4fb930ae8c914ceb20"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileLoadStream.html#adeb35451885c1c4fb930ae8c914ceb20">cutlass::PredicatedTileLoadStream::TransformedFragment</a></div><divclass="ttdeci">Base::TransformedFragment TransformedFragment</div><divclass="ttdoc">Output fragment from transformer. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:271</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileStoreStream_html_a6c9737f5b09e7eb1aa7daabb00ae2e69"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileStoreStream.html#a6c9737f5b09e7eb1aa7daabb00ae2e69">cutlass::PredicatedTileStoreStream::Fragment</a></div><divclass="ttdeci">Base::Fragment Fragment</div><divclass="ttdoc">Fragment fetched from source memory. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:326</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileStoreStream_html_ad0c7a51f1b98111ce332ed906601a4ba"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileStoreStream.html#ad0c7a51f1b98111ce332ed906601a4ba">cutlass::PredicatedTileStoreStream::Params</a></div><divclass="ttdeci">Base::Params Params</div><divclass="ttdoc">Parameters object used to construct generic load stream. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:332</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_1_1Params_html"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream_1_1Params.html">cutlass::TileStoreStream::Params</a></div><divclass="ttdoc">Parameters used to construct the stream. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:168</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileLoadStream_html_a60a03c95452fe627477933d60815f7cb"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileLoadStream.html#a60a03c95452fe627477933d60815f7cb">cutlass::PredicatedTileLoadStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy()</div><divclass="ttdoc">Loads a tile and increments the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:299</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_ac61d45d91faf9d060509cf1e5c34fe01"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#ac61d45d91faf9d060509cf1e5c34fe01">cutlass::TileLoadStream::transformed_fragment</a></div><divclass="ttdeci">TransformedFragment transformed_fragment</div><divclass="ttdoc">Transformed fragment from transformer. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:103</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_ac004fc2e078591ced5d4e5521dfd8627"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#ac004fc2e078591ced5d4e5521dfd8627">cutlass::TileLoadStream::commit</a></div><divclass="ttdeci">CUTLASS_DEVICE void commit()</div><divclass="ttdoc">Commits the fetched fragment and applies a transformation. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:126</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_ab6d8716c166d071615f4e78d9ac6efb8"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#ab6d8716c166d071615f4e78d9ac6efb8">cutlass::TileLoadStream::iterator</a></div><divclass="ttdeci">Iterator iterator</div><divclass="ttdoc">Iterator to load tiles. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:94</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_1_1Params_html_acc400568f7694f818b5afbb109bd2e63"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream_1_1Params.html#acc400568f7694f818b5afbb109bd2e63">cutlass::TileStoreStream::Params::Params</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Params(typename Iterator::Params const &_iterator)</div><divclass="ttdoc">Constructor with iterator params. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:182</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_af2727fc0ddeffd1cdaef751140aa6093"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#af2727fc0ddeffd1cdaef751140aa6093">cutlass::TileLoadStream::intermediate_fragment</a></div><divclass="ttdeci">CUTLASS_DEVICE Fragment & intermediate_fragment()</div><divclass="ttdoc">Accesses the loaded, transformed fragment. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:130</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_1_1Params_html_acd106661221997d7c5943daac8eb5088"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream_1_1Params.html#acd106661221997d7c5943daac8eb5088">cutlass::TileStoreStream::Params::iterator</a></div><divclass="ttdeci">Iterator::Params iterator</div><divclass="ttdoc">Parameters to the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:170</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_a8c9256c5cdd1fd129dbcc6536375aca7"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#a8c9256c5cdd1fd129dbcc6536375aca7">cutlass::TileLoadStream::TensorRef</a></div><divclass="ttdeci">Iterator::TensorRef TensorRef</div><divclass="ttdoc">Tensor reference expected by the stream. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:63</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_a61d57147150bffda0c1662d6131a3934"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#a61d57147150bffda0c1662d6131a3934">cutlass::TileStoreStream::transformer</a></div><divclass="ttdeci">Transformer transformer</div><divclass="ttdoc">Transformation applied to inputs. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:193</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_a94cde8bcdcedc934cc14de19e43375d1"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#a94cde8bcdcedc934cc14de19e43375d1">cutlass::TileLoadStream::TransformedFragment</a></div><divclass="ttdeci">Transformer::OutputFragment TransformedFragment</div><divclass="ttdoc">Output fragment from transformer. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:60</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html">cutlass::TileLoadStream</a></div><divclass="ttdoc">Generic stream for loading and transforming fragments. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:45</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_ab5176fc539364fdf63647dc33020f579"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#ab5176fc539364fdf63647dc33020f579">cutlass::TileStoreStream::commit</a></div><divclass="ttdeci">CUTLASS_DEVICE void commit()</div><divclass="ttdoc">Commits the store operation. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:233</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_html_aea86cbd64781caabeee293cfa2070e81"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream.html#aea86cbd64781caabeee293cfa2070e81">cutlass::TileLoadStream::Fragment</a></div><divclass="ttdeci">Iterator::Fragment Fragment</div><divclass="ttdoc">Fragment fetched from source memory. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:57</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_1_1Params_html"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream_1_1Params.html">cutlass::TileLoadStream::Params</a></div><divclass="ttdoc">Parameters object used to construct generic load stream. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:72</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_aff77aed0f1b1583b01a427fc935c5d71"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#aff77aed0f1b1583b01a427fc935c5d71">cutlass::TileStoreStream::intermediate_fragment</a></div><divclass="ttdeci">CUTLASS_DEVICE TransformedFragment & intermediate_fragment()</div><divclass="ttdoc">Accesses the fragment after trasnforming. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:241</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileStoreStream_html_a165a0d486f53fb2315d4e555c9f59891"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileStoreStream.html#a165a0d486f53fb2315d4e555c9f59891">cutlass::PredicatedTileStoreStream::commit</a></div><divclass="ttdeci">CUTLASS_DEVICE void commit()</div><divclass="ttdoc">Commits the store operation. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:371</div></div>
<divclass="ttc"id="structcutlass_1_1PredicatedTileStoreStream_html"><divclass="ttname"><ahref="structcutlass_1_1PredicatedTileStoreStream.html">cutlass::PredicatedTileStoreStream</a></div><divclass="ttdoc">Generic stream for transforming and storing fragments. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:309</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_aeb5be2edcc35c7876abe5234663f9c48"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#aeb5be2edcc35c7876abe5234663f9c48">cutlass::TileStoreStream::transformed_fragment</a></div><divclass="ttdeci">TransformedFragment transformed_fragment</div><divclass="ttdoc">Transformed fragment from transformer. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:199</div></div>
<divclass="ttc"id="convert_8h_html"><divclass="ttname"><ahref="convert_8h.html">convert.h</a></div><divclass="ttdoc">Defines conversion operations among Fragments of different base type. </div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_a50b6b5bd08fd83baa36c3dc4461ca009"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#a50b6b5bd08fd83baa36c3dc4461ca009">cutlass::TileStoreStream::copy</a></div><divclass="ttdeci">CUTLASS_DEVICE void copy()</div><divclass="ttdoc">Stores a fragment and increments the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:218</div></div>
<divclass="ttc"id="structcutlass_1_1TileLoadStream_1_1Params_html_a0430f377595718291f84ef62eb6f4e57"><divclass="ttname"><ahref="structcutlass_1_1TileLoadStream_1_1Params.html#a0430f377595718291f84ef62eb6f4e57">cutlass::TileLoadStream::Params::iterator</a></div><divclass="ttdeci">Iterator::Params iterator</div><divclass="ttdoc">Parameters to the iterator. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:74</div></div>
<divclass="ttc"id="structcutlass_1_1TileStoreStream_html_a601a296ec830e9b98aca9d5cf4b4010c"><divclass="ttname"><ahref="structcutlass_1_1TileStoreStream.html#a601a296ec830e9b98aca9d5cf4b4010c">cutlass::TileStoreStream::iterator</a></div><divclass="ttdeci">Iterator iterator</div><divclass="ttdoc">Iterator to store tiles. </div><divclass="ttdef"><b>Definition:</b> tile_stream.h:190</div></div>