<ahref="vector_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"></a><
<divclass="ttc"id="unioncutlass_1_1Vector_html_a69be4f85c1dac371fa6f1c6747724adc"><divclass="ttname"><ahref="unioncutlass_1_1Vector.html#a69be4f85c1dac371fa6f1c6747724adc">cutlass::Vector::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Scalar const & operator[](uint32_t i) const</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:84</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4_html_a2d5ec0b76daa136dae0b4aec1edf9e0b"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#a2d5ec0b76daa136dae0b4aec1edf9e0b">cutlass::Vector< int4_t, kLanes_ >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE int operator[](uint32_t i) const</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:220</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01half_00_011_01_4_html_a12fa9366dd57fadb2d3f624ab7836dc8"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a12fa9366dd57fadb2d3f624ab7836dc8">cutlass::Vector< half, 1 >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Scalar const & operator[](uint32_t i) const</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:112</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_html_abf531676caf85cde1c8df435c1ebe8bb"><divclass="ttname"><ahref="unioncutlass_1_1Vector.html#abf531676caf85cde1c8df435c1ebe8bb">cutlass::Vector::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Scalar & operator[](uint32_t i)</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:86</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4_html_a023d6ae1bf06d678f8cb5652eca1bf79"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a023d6ae1bf06d678f8cb5652eca1bf79">cutlass::Vector< uint4_t, kLanes_ >::Vector</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Vector(uint32_t value)</div><divclass="ttdoc">Constructor to convert from uint32_t type. </div><divclass="ttdef"><b>Definition:</b> vector.h:253</div></div>
<divclass="ttc"id="platform_8h_html"><divclass="ttname"><ahref="platform_8h.html">platform.h</a></div><divclass="ttdoc">C++ features that may be otherwise unimplemented for CUDA device functions. </div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4_html_a4eab187b6f7650bd88ccd421c8330d3c"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#a4eab187b6f7650bd88ccd421c8330d3c">cutlass::Vector< uint4_t, kLanes_ >::aligned_</a></div><divclass="ttdeci">AlignedStruct< kVectorSize > aligned_</div><divclass="ttdoc">The aligned storage to make sure we have good alignment. </div><divclass="ttdef"><b>Definition:</b> vector.h:242</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01half_00_011_01_4_html_a1e6568c0f3f958db739074ab6978ff10"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01half_00_011_01_4.html#a1e6568c0f3f958db739074ab6978ff10">cutlass::Vector< half, 1 >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Scalar & operator[](uint32_t i)</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:116</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_html_a29dab07949206cc1609543ffcefd1e5a"><divclass="ttname"><ahref="unioncutlass_1_1Vector.html#a29dab07949206cc1609543ffcefd1e5a">cutlass::Vector::registers</a></div><divclass="ttdeci">uint32_t registers[kRegisters]</div><divclass="ttdoc">The data in registers. </div><divclass="ttdef"><b>Definition:</b> vector.h:81</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4_html_a8eda6e6181a5333ca8350977374708cb"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a8eda6e6181a5333ca8350977374708cb">cutlass::Vector< bin1_t, kLanes_ >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE bool operator[](uint32_t i) const</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:186</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01half_00_011_01_4_html_acc698443a38fd0ad63f931bdf172ad99"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01half_00_011_01_4.html#acc698443a38fd0ad63f931bdf172ad99">cutlass::Vector< half, 1 >::aligned_</a></div><divclass="ttdeci">AlignedStruct< kVectorSize > aligned_</div><divclass="ttdoc">The aligned storage to make sure we have good alignment. </div><divclass="ttdef"><b>Definition:</b> vector.h:104</div></div>
<divclass="ttc"id="structcutlass_1_1VectorTraits_html_a4ac6196c07e0d3ba8a03cd72a05026a2"><divclass="ttname"><ahref="structcutlass_1_1VectorTraits.html#a4ac6196c07e0d3ba8a03cd72a05026a2">cutlass::VectorTraits::Vector</a></div><divclass="ttdeci">Vector< T, 1 > Vector</div><divclass="ttdoc">Type that is always a vector. </div><divclass="ttdef"><b>Definition:</b> vector.h:342</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4_html_a50ae62579267952a648d4b6a6be3c663"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a50ae62579267952a648d4b6a6be3c663">cutlass::Vector< bin1_t, kLanes_ >::Vector</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Vector(uint32_t value)</div><divclass="ttdoc">Constructor to convert from uint32_t type. </div><divclass="ttdef"><b>Definition:</b> vector.h:184</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4_html_a3891ce1c321a3e57e938c8864de9baf0"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a3891ce1c321a3e57e938c8864de9baf0">cutlass::Vector< half, kLanes_ >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Scalar & operator[](uint32_t i)</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:150</div></div>
<divclass="ttc"id="structcutlass_1_1VectorTraits_html"><divclass="ttname"><ahref="structcutlass_1_1VectorTraits.html">cutlass::VectorTraits</a></div><divclass="ttdoc">Traits describing properties of vectors and scalar-as-vectors. </div><divclass="ttdef"><b>Definition:</b> vector.h:331</div></div>
<divclass="ttc"id="structcutlass_1_1VectorTraits_html_abf96ea5dfd3212d388cb91e48cc0e6a2"><divclass="ttname"><ahref="structcutlass_1_1VectorTraits.html#abf96ea5dfd3212d388cb91e48cc0e6a2">cutlass::VectorTraits::IsVector</a></div><divclass="ttdeci">static bool const IsVector</div><divclass="ttdoc">True if the type is actually a cutlass::Vector, otherwise false. </div><divclass="ttdef"><b>Definition:</b> vector.h:339</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_html_a091080b4e9db9e89734f44ceb985d78f"><divclass="ttname"><ahref="unioncutlass_1_1Vector.html#a091080b4e9db9e89734f44ceb985d78f">cutlass::Vector::scalars</a></div><divclass="ttdeci">Scalar scalars[kLanes]</div><divclass="ttdoc">The associated array of scalars. </div><divclass="ttdef"><b>Definition:</b> vector.h:79</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4_html_ae2215fe7c2c223175b4172d73a6c7a82"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01uint4__t_00_01kLanes___01_4.html#ae2215fe7c2c223175b4172d73a6c7a82">cutlass::Vector< uint4_t, kLanes_ >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE int operator[](uint32_t i) const</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:255</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4_html_ad6784e347f068ad20af52379286337c0"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01int4__t_00_01kLanes___01_4.html#ad6784e347f068ad20af52379286337c0">cutlass::Vector< int4_t, kLanes_ >::aligned_</a></div><divclass="ttdeci">AlignedStruct< kVectorSize > aligned_</div><divclass="ttdoc">The aligned storage to make sure we have good alignment. </div><divclass="ttdef"><b>Definition:</b> vector.h:207</div></div>
<divclass="ttc"id="structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4_html_aff21f15596731eacf8c587811bb4ccdb"><divclass="ttname"><ahref="structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01const_01_4.html#aff21f15596731eacf8c587811bb4ccdb">cutlass::VectorTraits< Vector< T, Lanes > const >::Vector</a></div><divclass="ttdeci">Vector< T, Lanes > Vector</div><divclass="ttdoc">Type that is always a Vector. </div><divclass="ttdef"><b>Definition:</b> vector.h:374</div></div>
<divclass="ttc"id="structcutlass_1_1VectorTraits_html_a052e1e5963a9e04482b16cb881d1eaf8"><divclass="ttname"><ahref="structcutlass_1_1VectorTraits.html#a052e1e5963a9e04482b16cb881d1eaf8">cutlass::VectorTraits::kLanes</a></div><divclass="ttdeci">static int const kLanes</div><divclass="ttdoc">Number of lanes of vector. </div><divclass="ttdef"><b>Definition:</b> vector.h:336</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_html_a9e9352594fcd022526d5b69b6c25c99c"><divclass="ttname"><ahref="unioncutlass_1_1Vector.html#a9e9352594fcd022526d5b69b6c25c99c">cutlass::Vector::aligned_</a></div><divclass="ttdeci">AlignedStruct< kVectorSize > aligned_</div><divclass="ttdoc">The aligned storage to make sure we have good alignment. </div><divclass="ttdef"><b>Definition:</b> vector.h:74</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4_html_ad50b5d4acbd7ead82c128091c9db9113"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#ad50b5d4acbd7ead82c128091c9db9113">cutlass::Vector< half, kLanes_ >::operator[]</a></div><divclass="ttdeci">CUTLASS_HOST_DEVICE Scalar const & operator[](uint32_t i) const</div><divclass="ttdoc">Accessor to the ith lane. </div><divclass="ttdef"><b>Definition:</b> vector.h:146</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4_html_a9e41dbe541a7dddf1e461e0390fe8896"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01half_00_01kLanes___01_4.html#a9e41dbe541a7dddf1e461e0390fe8896">cutlass::Vector< half, kLanes_ >::aligned_</a></div><divclass="ttdeci">AlignedStruct< kVectorSize > aligned_</div><divclass="ttdoc">The aligned storage to make sure we have good alignment. </div><divclass="ttdef"><b>Definition:</b> vector.h:136</div></div>
<divclass="ttc"id="structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4_html_a12b9084c48d2d829730f907485dfb5e5"><divclass="ttname"><ahref="structcutlass_1_1VectorTraits_3_01Vector_3_01T_00_01Lanes_01_4_01_4.html#a12b9084c48d2d829730f907485dfb5e5">cutlass::VectorTraits< Vector< T, Lanes >>::Vector</a></div><divclass="ttdeci">Vector< T, Lanes > Vector</div><divclass="ttdoc">Type that is always a Vector. </div><divclass="ttdef"><b>Definition:</b> vector.h:358</div></div>
<divclass="ttc"id="structcutlass_1_1Extent_html"><divclass="ttname"><ahref="structcutlass_1_1Extent.html">cutlass::Extent</a></div><divclass="ttdoc">Returns the extent of a scalar or vector. </div><divclass="ttdef"><b>Definition:</b> vector.h:311</div></div>
<divclass="ttc"id="unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4_html_a1df3324868465331db13bd7775b55e87"><divclass="ttname"><ahref="unioncutlass_1_1Vector_3_01bin1__t_00_01kLanes___01_4.html#a1df3324868465331db13bd7775b55e87">cutlass::Vector< bin1_t, kLanes_ >::aligned_</a></div><divclass="ttdeci">AlignedStruct< kVectorSize > aligned_</div><divclass="ttdoc">The aligned storage to make sure we have good alignment. </div><divclass="ttdef"><b>Definition:</b> vector.h:173</div></div>