mirror of
https://github.com/facebookresearch/faiss.git
synced 2025-06-03 21:54:02 +08:00
various bugfixes from github issues kmean with some frozen centroids GPU better tiling for large flat datasets default AVX for vector ops
993 lines
73 KiB
HTML
993 lines
73 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
|
<title>Faiss: faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits > Class Template Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td style="padding-left: 0.5em;">
|
|
<div id="projectname">Faiss
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.5 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
|
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a></div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="namespacefaiss.html">faiss</a></li><li class="navelem"><b>gpu</b></li><li class="navelem"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-types">Public Types</a> |
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pro-attribs">Protected Attributes</a> |
|
|
<a href="classfaiss_1_1gpu_1_1Tensor-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits > Class Template Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Our tensor type.
|
|
<a href="classfaiss_1_1gpu_1_1Tensor.html#details">More...</a></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits >:</div>
|
|
<div class="dyncontent">
|
|
<div class="center">
|
|
<img src="classfaiss_1_1gpu_1_1Tensor.png" usemap="#faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits >_map" alt=""/>
|
|
<map id="faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits >_map" name="faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits >_map">
|
|
<area href="classfaiss_1_1gpu_1_1DeviceTensor.html" alt="faiss::gpu::DeviceTensor< T, Dim, InnerContig, IndexT, PtrTraits >" shape="rect" coords="0,56,387,80"/>
|
|
<area href="classfaiss_1_1gpu_1_1HostTensor.html" alt="faiss::gpu::HostTensor< T, Dim, InnerContig, IndexT, PtrTraits >" shape="rect" coords="397,56,784,80"/>
|
|
</map>
|
|
</div></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
|
Public Types</h2></td></tr>
|
|
<tr class="memitem:a072171dcad6979257d1d28dfdc9c6eb0"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <b>NumDim</b> = Dim
|
|
}</td></tr>
|
|
<tr class="separator:a072171dcad6979257d1d28dfdc9c6eb0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a828306db3c0bcaecca6d3888eb3bda24"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <b>IsInnerContig</b> = InnerContig
|
|
}</td></tr>
|
|
<tr class="separator:a828306db3c0bcaecca6d3888eb3bda24"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac93f0549a9f5445b661360d98f81a886"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac93f0549a9f5445b661360d98f81a886"></a>
|
|
typedef T </td><td class="memItemRight" valign="bottom"><b>DataType</b></td></tr>
|
|
<tr class="separator:ac93f0549a9f5445b661360d98f81a886"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6f1736cc50bddec6ccce56ae1a1cdbfd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f1736cc50bddec6ccce56ae1a1cdbfd"></a>
|
|
typedef IndexT </td><td class="memItemRight" valign="bottom"><b>IndexType</b></td></tr>
|
|
<tr class="separator:a6f1736cc50bddec6ccce56ae1a1cdbfd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afb400f8869fab312c801fab02e70f547"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb400f8869fab312c801fab02e70f547"></a>
|
|
typedef PtrTraits< T >::PtrType </td><td class="memItemRight" valign="bottom"><b>DataPtrType</b></td></tr>
|
|
<tr class="separator:afb400f8869fab312c801fab02e70f547"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a93bf6ccd5c40c1e936c5b9eb0aabc70f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93bf6ccd5c40c1e936c5b9eb0aabc70f"></a>
|
|
typedef <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, <br class="typebreak"/>
|
|
InnerContig, IndexT, PtrTraits > </td><td class="memItemRight" valign="bottom"><b>TensorType</b></td></tr>
|
|
<tr class="separator:a93bf6ccd5c40c1e936c5b9eb0aabc70f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a8ae7b3f95991125a5648c3b78afd40bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ae7b3f95991125a5648c3b78afd40bd"></a>
|
|
__host__ __device__ </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a8ae7b3f95991125a5648c3b78afd40bd">Tensor</a> ()</td></tr>
|
|
<tr class="memdesc:a8ae7b3f95991125a5648c3b78afd40bd"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br/></td></tr>
|
|
<tr class="separator:a8ae7b3f95991125a5648c3b78afd40bd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9f13ee1a4ec5e12658b2fc99e2a8a6e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f13ee1a4ec5e12658b2fc99e2a8a6e8"></a>
|
|
__host__ __device__ </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a9f13ee1a4ec5e12658b2fc99e2a8a6e8">Tensor</a> (<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > &t)=default</td></tr>
|
|
<tr class="memdesc:a9f13ee1a4ec5e12658b2fc99e2a8a6e8"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <br/></td></tr>
|
|
<tr class="separator:a9f13ee1a4ec5e12658b2fc99e2a8a6e8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5a90a144dc02bf9ba2852886c9895d4a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a90a144dc02bf9ba2852886c9895d4a"></a>
|
|
__host__ __device__ </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a5a90a144dc02bf9ba2852886c9895d4a">Tensor</a> (<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > &&t)=default</td></tr>
|
|
<tr class="memdesc:a5a90a144dc02bf9ba2852886c9895d4a"><td class="mdescLeft"> </td><td class="mdescRight">Move constructor. <br/></td></tr>
|
|
<tr class="separator:a5a90a144dc02bf9ba2852886c9895d4a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a503fe45536fb7153fbd18fe61c159304"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503fe45536fb7153fbd18fe61c159304"></a>
|
|
__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a503fe45536fb7153fbd18fe61c159304">operator=</a> (<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > &t)=default</td></tr>
|
|
<tr class="memdesc:a503fe45536fb7153fbd18fe61c159304"><td class="mdescLeft"> </td><td class="mdescRight">Assignment. <br/></td></tr>
|
|
<tr class="separator:a503fe45536fb7153fbd18fe61c159304"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae086a03b8067e18d0c2dda0892dc9e39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae086a03b8067e18d0c2dda0892dc9e39"></a>
|
|
__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ae086a03b8067e18d0c2dda0892dc9e39">operator=</a> (<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > &&t)</td></tr>
|
|
<tr class="memdesc:ae086a03b8067e18d0c2dda0892dc9e39"><td class="mdescLeft"> </td><td class="mdescRight">Move assignment. <br/></td></tr>
|
|
<tr class="separator:ae086a03b8067e18d0c2dda0892dc9e39"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a88210dee96fc97b00f0ab45749528fe9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88210dee96fc97b00f0ab45749528fe9"></a>
|
|
__host__ __device__ </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a88210dee96fc97b00f0ab45749528fe9">Tensor</a> (DataPtrType <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a50411ce4d0fa32ef715e3321b6e33212">data</a>, const IndexT <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#abc0ecc4f882ee09632b5a06be0619adb">sizes</a>[Dim])</td></tr>
|
|
<tr class="memdesc:a88210dee96fc97b00f0ab45749528fe9"><td class="mdescLeft"> </td><td class="mdescRight">Constructor that calculates strides with no padding. <br/></td></tr>
|
|
<tr class="separator:a88210dee96fc97b00f0ab45749528fe9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a747a7b43c01f54158798b28728b2dfc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a747a7b43c01f54158798b28728b2dfc0"></a>
|
|
__host__ __device__ </td><td class="memItemRight" valign="bottom"><b>Tensor</b> (DataPtrType <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a50411ce4d0fa32ef715e3321b6e33212">data</a>, std::initializer_list< IndexT > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#abc0ecc4f882ee09632b5a06be0619adb">sizes</a>)</td></tr>
|
|
<tr class="separator:a747a7b43c01f54158798b28728b2dfc0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac651b20d86813b8928f05cde4fb1ff7d"><td class="memItemLeft" align="right" valign="top">__host__ __device__ </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ac651b20d86813b8928f05cde4fb1ff7d">Tensor</a> (DataPtrType <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a50411ce4d0fa32ef715e3321b6e33212">data</a>, const IndexT <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#abc0ecc4f882ee09632b5a06be0619adb">sizes</a>[Dim], const IndexT <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a87a777247486756e99060547a3cc833a">strides</a>[Dim])</td></tr>
|
|
<tr class="separator:ac651b20d86813b8928f05cde4fb1ff7d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6dc00c182a92389b74c89ba7fcab40d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6dc00c182a92389b74c89ba7fcab40d3"></a>
|
|
__host__ void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6dc00c182a92389b74c89ba7fcab40d3">copyFrom</a> (<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > &t, cudaStream_t stream)</td></tr>
|
|
<tr class="memdesc:a6dc00c182a92389b74c89ba7fcab40d3"><td class="mdescLeft"> </td><td class="mdescRight">Copies a tensor into ourselves; sizes must match. <br/></td></tr>
|
|
<tr class="separator:a6dc00c182a92389b74c89ba7fcab40d3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6cc21376070a03d77661d6e333972c6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6cc21376070a03d77661d6e333972c6a"></a>
|
|
__host__ void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6cc21376070a03d77661d6e333972c6a">copyTo</a> (<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > &t, cudaStream_t stream)</td></tr>
|
|
<tr class="memdesc:a6cc21376070a03d77661d6e333972c6a"><td class="mdescLeft"> </td><td class="mdescRight">Copies ourselves into a tensor; sizes must match. <br/></td></tr>
|
|
<tr class="separator:a6cc21376070a03d77661d6e333972c6a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3067941f8f8f09fc73e2f06243699825"><td class="memTemplParams" colspan="2">template<typename OtherT , int OtherDim> </td></tr>
|
|
<tr class="memitem:a3067941f8f8f09fc73e2f06243699825"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a3067941f8f8f09fc73e2f06243699825">isSame</a> (const <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< OtherT, OtherDim, InnerContig, IndexT, PtrTraits > &rhs) const </td></tr>
|
|
<tr class="separator:a3067941f8f8f09fc73e2f06243699825"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a22c1e45f81f7f9e5427e2eed19f9cd11"><td class="memTemplParams" colspan="2"><a class="anchor" id="a22c1e45f81f7f9e5427e2eed19f9cd11"></a>
|
|
template<typename OtherT , int OtherDim> </td></tr>
|
|
<tr class="memitem:a22c1e45f81f7f9e5427e2eed19f9cd11"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a22c1e45f81f7f9e5427e2eed19f9cd11">isSameSize</a> (const <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< OtherT, OtherDim, InnerContig, IndexT, PtrTraits > &rhs) const </td></tr>
|
|
<tr class="memdesc:a22c1e45f81f7f9e5427e2eed19f9cd11"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the two tensors are of the same dimensionality and size. <br/></td></tr>
|
|
<tr class="separator:a22c1e45f81f7f9e5427e2eed19f9cd11"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2894f8fdfab8ec3245364a6f9e8a5259"><td class="memTemplParams" colspan="2">template<typename U > </td></tr>
|
|
<tr class="memitem:a2894f8fdfab8ec3245364a6f9e8a5259"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< U, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a2894f8fdfab8ec3245364a6f9e8a5259">cast</a> ()</td></tr>
|
|
<tr class="separator:a2894f8fdfab8ec3245364a6f9e8a5259"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a79a16bd4300ca8fdba52932c7c97cce9"><td class="memTemplParams" colspan="2"><a class="anchor" id="a79a16bd4300ca8fdba52932c7c97cce9"></a>
|
|
template<typename U > </td></tr>
|
|
<tr class="memitem:a79a16bd4300ca8fdba52932c7c97cce9"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ const <br class="typebreak"/>
|
|
<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< U, Dim, InnerContig, <br class="typebreak"/>
|
|
IndexT, PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a79a16bd4300ca8fdba52932c7c97cce9">cast</a> () const </td></tr>
|
|
<tr class="memdesc:a79a16bd4300ca8fdba52932c7c97cce9"><td class="mdescLeft"> </td><td class="mdescRight">Const version of <code>cast</code> <br/></td></tr>
|
|
<tr class="separator:a79a16bd4300ca8fdba52932c7c97cce9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6c9640c365134ccc33cdb2695b016eb3"><td class="memTemplParams" colspan="2">template<typename U > </td></tr>
|
|
<tr class="memitem:a6c9640c365134ccc33cdb2695b016eb3"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< U, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6c9640c365134ccc33cdb2695b016eb3">castResize</a> ()</td></tr>
|
|
<tr class="separator:a6c9640c365134ccc33cdb2695b016eb3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae06338d9b19c62452c2111682447f863"><td class="memTemplParams" colspan="2"><a class="anchor" id="ae06338d9b19c62452c2111682447f863"></a>
|
|
template<typename U > </td></tr>
|
|
<tr class="memitem:ae06338d9b19c62452c2111682447f863"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ const <br class="typebreak"/>
|
|
<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< U, Dim, InnerContig, <br class="typebreak"/>
|
|
IndexT, PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ae06338d9b19c62452c2111682447f863">castResize</a> () const </td></tr>
|
|
<tr class="memdesc:ae06338d9b19c62452c2111682447f863"><td class="mdescLeft"> </td><td class="mdescRight">Const version of <code>castResize</code> <br/></td></tr>
|
|
<tr class="separator:ae06338d9b19c62452c2111682447f863"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7fbbf51f8ef6bea9cc863a86e20d994e"><td class="memTemplParams" colspan="2"><a class="anchor" id="a7fbbf51f8ef6bea9cc863a86e20d994e"></a>
|
|
template<typename U > </td></tr>
|
|
<tr class="memitem:a7fbbf51f8ef6bea9cc863a86e20d994e"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a7fbbf51f8ef6bea9cc863a86e20d994e">canCastResize</a> () const </td></tr>
|
|
<tr class="memdesc:a7fbbf51f8ef6bea9cc863a86e20d994e"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if we can <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6c9640c365134ccc33cdb2695b016eb3">castResize()</a> this tensor to the new type. <br/></td></tr>
|
|
<tr class="separator:a7fbbf51f8ef6bea9cc863a86e20d994e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9f0c817e9751fe02926c2346a97f0350"><td class="memTemplParams" colspan="2">template<typename NewIndexT > </td></tr>
|
|
<tr class="memitem:a9f0c817e9751fe02926c2346a97f0350"><td class="memTemplItemLeft" align="right" valign="top">__host__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, <br class="typebreak"/>
|
|
InnerContig, NewIndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a9f0c817e9751fe02926c2346a97f0350">castIndexType</a> () const </td></tr>
|
|
<tr class="separator:a9f0c817e9751fe02926c2346a97f0350"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2ac9dc9fa8d81f2651a1be486c14ba62"><td class="memTemplParams" colspan="2">template<typename NewIndexT > </td></tr>
|
|
<tr class="memitem:a2ac9dc9fa8d81f2651a1be486c14ba62"><td class="memTemplItemLeft" align="right" valign="top">__host__ bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a2ac9dc9fa8d81f2651a1be486c14ba62">canUseIndexType</a> () const </td></tr>
|
|
<tr class="separator:a2ac9dc9fa8d81f2651a1be486c14ba62"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a50411ce4d0fa32ef715e3321b6e33212"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50411ce4d0fa32ef715e3321b6e33212"></a>
|
|
__host__ __device__ DataPtrType </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a50411ce4d0fa32ef715e3321b6e33212">data</a> ()</td></tr>
|
|
<tr class="memdesc:a50411ce4d0fa32ef715e3321b6e33212"><td class="mdescLeft"> </td><td class="mdescRight">Returns a raw pointer to the start of our data. <br/></td></tr>
|
|
<tr class="separator:a50411ce4d0fa32ef715e3321b6e33212"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1afd11b16869df9d352ee8ab1f8c7a1f"><td class="memItemLeft" align="right" valign="top">__host__ __device__ DataPtrType </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a1afd11b16869df9d352ee8ab1f8c7a1f">end</a> ()</td></tr>
|
|
<tr class="separator:a1afd11b16869df9d352ee8ab1f8c7a1f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afde15195e51318fd1811ea402f63c1ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afde15195e51318fd1811ea402f63c1ab"></a>
|
|
__host__ __device__ const <br class="typebreak"/>
|
|
DataPtrType </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#afde15195e51318fd1811ea402f63c1ab">data</a> () const </td></tr>
|
|
<tr class="memdesc:afde15195e51318fd1811ea402f63c1ab"><td class="mdescLeft"> </td><td class="mdescRight">Returns a raw pointer to the start of our data (const). <br/></td></tr>
|
|
<tr class="separator:afde15195e51318fd1811ea402f63c1ab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7e6b9cd8cc3cc0bfe39bd3fed7733e51"><td class="memItemLeft" align="right" valign="top">__host__ __device__ DataPtrType </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a7e6b9cd8cc3cc0bfe39bd3fed7733e51">end</a> () const </td></tr>
|
|
<tr class="separator:a7e6b9cd8cc3cc0bfe39bd3fed7733e51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a38adf20225c9f8f764aafe273c4ee122"><td class="memTemplParams" colspan="2"><a class="anchor" id="a38adf20225c9f8f764aafe273c4ee122"></a>
|
|
template<typename U > </td></tr>
|
|
<tr class="memitem:a38adf20225c9f8f764aafe273c4ee122"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ PtrTraits<br class="typebreak"/>
|
|
< U >::PtrType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a38adf20225c9f8f764aafe273c4ee122">dataAs</a> ()</td></tr>
|
|
<tr class="memdesc:a38adf20225c9f8f764aafe273c4ee122"><td class="mdescLeft"> </td><td class="mdescRight">Cast to a different datatype. <br/></td></tr>
|
|
<tr class="separator:a38adf20225c9f8f764aafe273c4ee122"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a76383e7f62a826ba55955bd3d1dddce7"><td class="memTemplParams" colspan="2"><a class="anchor" id="a76383e7f62a826ba55955bd3d1dddce7"></a>
|
|
template<typename U > </td></tr>
|
|
<tr class="memitem:a76383e7f62a826ba55955bd3d1dddce7"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ const <br class="typebreak"/>
|
|
PtrTraits< const U >::PtrType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a76383e7f62a826ba55955bd3d1dddce7">dataAs</a> () const </td></tr>
|
|
<tr class="memdesc:a76383e7f62a826ba55955bd3d1dddce7"><td class="mdescLeft"> </td><td class="mdescRight">Cast to a different datatype. <br/></td></tr>
|
|
<tr class="separator:a76383e7f62a826ba55955bd3d1dddce7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7926dc43f0fa998d16b9497676e118e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7926dc43f0fa998d16b9497676e118e6"></a>
|
|
__host__ __device__ <br class="typebreak"/>
|
|
<a class="el" href="classfaiss_1_1gpu_1_1detail_1_1SubTensor.html">detail::SubTensor</a>< <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">TensorType</a>, <br class="typebreak"/>
|
|
Dim-1, PtrTraits > </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a7926dc43f0fa998d16b9497676e118e6">operator[]</a> (IndexT)</td></tr>
|
|
<tr class="memdesc:a7926dc43f0fa998d16b9497676e118e6"><td class="mdescLeft"> </td><td class="mdescRight">Returns a read/write view of a portion of our tensor. <br/></td></tr>
|
|
<tr class="separator:a7926dc43f0fa998d16b9497676e118e6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0c8ec0ba81275d369caac6f0324d80bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c8ec0ba81275d369caac6f0324d80bd"></a>
|
|
__host__ __device__ const <br class="typebreak"/>
|
|
<a class="el" href="classfaiss_1_1gpu_1_1detail_1_1SubTensor.html">detail::SubTensor</a>< <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">TensorType</a>, <br class="typebreak"/>
|
|
Dim-1, PtrTraits > </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a0c8ec0ba81275d369caac6f0324d80bd">operator[]</a> (IndexT) const </td></tr>
|
|
<tr class="memdesc:a0c8ec0ba81275d369caac6f0324d80bd"><td class="mdescLeft"> </td><td class="mdescRight">Returns a read/write view of a portion of our tensor (const). <br/></td></tr>
|
|
<tr class="separator:a0c8ec0ba81275d369caac6f0324d80bd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6699c311648457f257afa340c61f417c"><td class="memItemLeft" align="right" valign="top">__host__ __device__ IndexT </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6699c311648457f257afa340c61f417c">getSize</a> (int i) const </td></tr>
|
|
<tr class="separator:a6699c311648457f257afa340c61f417c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0b8bba630f7a1fa217f90b20d298420a"><td class="memItemLeft" align="right" valign="top">__host__ __device__ IndexT </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a0b8bba630f7a1fa217f90b20d298420a">getStride</a> (int i) const </td></tr>
|
|
<tr class="separator:a0b8bba630f7a1fa217f90b20d298420a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0ba9ab7c1676b7a41a6e6b2e5a490d2f"><td class="memItemLeft" align="right" valign="top">__host__ __device__ size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a0ba9ab7c1676b7a41a6e6b2e5a490d2f">numElements</a> () const </td></tr>
|
|
<tr class="separator:a0ba9ab7c1676b7a41a6e6b2e5a490d2f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8220da958d022c322b80b0539c99f8d4"><td class="memItemLeft" align="right" valign="top">__host__ __device__ size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a8220da958d022c322b80b0539c99f8d4">getSizeInBytes</a> () const </td></tr>
|
|
<tr class="separator:a8220da958d022c322b80b0539c99f8d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abc0ecc4f882ee09632b5a06be0619adb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc0ecc4f882ee09632b5a06be0619adb"></a>
|
|
__host__ __device__ const IndexT * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#abc0ecc4f882ee09632b5a06be0619adb">sizes</a> () const </td></tr>
|
|
<tr class="memdesc:abc0ecc4f882ee09632b5a06be0619adb"><td class="mdescLeft"> </td><td class="mdescRight">Returns the size array. <br/></td></tr>
|
|
<tr class="separator:abc0ecc4f882ee09632b5a06be0619adb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a87a777247486756e99060547a3cc833a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87a777247486756e99060547a3cc833a"></a>
|
|
__host__ __device__ const IndexT * </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a87a777247486756e99060547a3cc833a">strides</a> () const </td></tr>
|
|
<tr class="memdesc:a87a777247486756e99060547a3cc833a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the stride array. <br/></td></tr>
|
|
<tr class="separator:a87a777247486756e99060547a3cc833a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a09019c54911db891c9321fd3b34509c2"><td class="memItemLeft" align="right" valign="top">__host__ __device__ bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a09019c54911db891c9321fd3b34509c2">isContiguous</a> () const </td></tr>
|
|
<tr class="separator:a09019c54911db891c9321fd3b34509c2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a663e3829c395372acdc8d2e71c0bdabe"><td class="memItemLeft" align="right" valign="top">__host__ __device__ bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a663e3829c395372acdc8d2e71c0bdabe">isConsistentlySized</a> (int i) const </td></tr>
|
|
<tr class="separator:a663e3829c395372acdc8d2e71c0bdabe"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acd6bd3286c3e6b32ed9b335b9cb82637"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd6bd3286c3e6b32ed9b335b9cb82637"></a>
|
|
__host__ __device__ bool </td><td class="memItemRight" valign="bottom"><b>isConsistentlySized</b> () const </td></tr>
|
|
<tr class="separator:acd6bd3286c3e6b32ed9b335b9cb82637"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3f4e3c6afdf4a03308756b6ae6462c38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f4e3c6afdf4a03308756b6ae6462c38"></a>
|
|
__host__ __device__ bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a3f4e3c6afdf4a03308756b6ae6462c38">isContiguousDim</a> (int i) const </td></tr>
|
|
<tr class="memdesc:a3f4e3c6afdf4a03308756b6ae6462c38"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the given dimension index has no padding. <br/></td></tr>
|
|
<tr class="separator:a3f4e3c6afdf4a03308756b6ae6462c38"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a82a3484a6458e3e95bb91d320f2c6731"><td class="memItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a82a3484a6458e3e95bb91d320f2c6731">transpose</a> (int dim1, int dim2) const </td></tr>
|
|
<tr class="separator:a82a3484a6458e3e95bb91d320f2c6731"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a309eb97e9c6dbfdecf383343c072d38c"><td class="memTemplParams" colspan="2">template<int NewDim> </td></tr>
|
|
<tr class="memitem:a309eb97e9c6dbfdecf383343c072d38c"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
NewDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a309eb97e9c6dbfdecf383343c072d38c">upcastOuter</a> ()</td></tr>
|
|
<tr class="separator:a309eb97e9c6dbfdecf383343c072d38c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aee5cf46d16344e2a055cf63adb07d24a"><td class="memTemplParams" colspan="2">template<int NewDim> </td></tr>
|
|
<tr class="memitem:aee5cf46d16344e2a055cf63adb07d24a"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
NewDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#aee5cf46d16344e2a055cf63adb07d24a">upcastInner</a> ()</td></tr>
|
|
<tr class="separator:aee5cf46d16344e2a055cf63adb07d24a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2185b0c1c2c06cc3a4dab6a88eb6d001"><td class="memTemplParams" colspan="2">template<int NewDim> </td></tr>
|
|
<tr class="memitem:a2185b0c1c2c06cc3a4dab6a88eb6d001"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
NewDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a2185b0c1c2c06cc3a4dab6a88eb6d001">downcastOuter</a> ()</td></tr>
|
|
<tr class="separator:a2185b0c1c2c06cc3a4dab6a88eb6d001"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6a43125c6f429f28161d59f19eb8e5c5"><td class="memTemplParams" colspan="2">template<int NewDim> </td></tr>
|
|
<tr class="memitem:a6a43125c6f429f28161d59f19eb8e5c5"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
NewDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6a43125c6f429f28161d59f19eb8e5c5">downcastInner</a> ()</td></tr>
|
|
<tr class="separator:a6a43125c6f429f28161d59f19eb8e5c5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a74dbc09519c9c14479b2d18f2e5042e8"><td class="memTemplParams" colspan="2">template<int SubDim> </td></tr>
|
|
<tr class="memitem:a74dbc09519c9c14479b2d18f2e5042e8"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
SubDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a74dbc09519c9c14479b2d18f2e5042e8">view</a> (DataPtrType at)</td></tr>
|
|
<tr class="separator:a74dbc09519c9c14479b2d18f2e5042e8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a35a63cfa4034a8ee14a999132d8a1828"><td class="memTemplParams" colspan="2">template<int SubDim> </td></tr>
|
|
<tr class="memitem:a35a63cfa4034a8ee14a999132d8a1828"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
SubDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a35a63cfa4034a8ee14a999132d8a1828">view</a> ()</td></tr>
|
|
<tr class="separator:a35a63cfa4034a8ee14a999132d8a1828"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac2d0fc7199901a8e0788b58f0970b133"><td class="memItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ac2d0fc7199901a8e0788b58f0970b133">narrowOutermost</a> (IndexT start, IndexT size)</td></tr>
|
|
<tr class="separator:ac2d0fc7199901a8e0788b58f0970b133"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab6db6bf86dd0f7e877af3a6ae2100fe3"><td class="memItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
Dim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ab6db6bf86dd0f7e877af3a6ae2100fe3">narrow</a> (int dim, IndexT start, IndexT size)</td></tr>
|
|
<tr class="separator:ab6db6bf86dd0f7e877af3a6ae2100fe3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a665d97851f0929cad7fc76f945b64c97"><td class="memTemplParams" colspan="2">template<int NewDim> </td></tr>
|
|
<tr class="memitem:a665d97851f0929cad7fc76f945b64c97"><td class="memTemplItemLeft" align="right" valign="top">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, <br class="typebreak"/>
|
|
NewDim, InnerContig, IndexT, <br class="typebreak"/>
|
|
PtrTraits > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a665d97851f0929cad7fc76f945b64c97">view</a> (std::initializer_list< IndexT > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#abc0ecc4f882ee09632b5a06be0619adb">sizes</a>)</td></tr>
|
|
<tr class="separator:a665d97851f0929cad7fc76f945b64c97"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
|
Protected Attributes</h2></td></tr>
|
|
<tr class="memitem:a2ec506a25e46cf7001060a6ba5ae3b94"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ec506a25e46cf7001060a6ba5ae3b94"></a>
|
|
DataPtrType </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a2ec506a25e46cf7001060a6ba5ae3b94">data_</a></td></tr>
|
|
<tr class="memdesc:a2ec506a25e46cf7001060a6ba5ae3b94"><td class="mdescLeft"> </td><td class="mdescRight">Raw pointer to where the tensor data begins. <br/></td></tr>
|
|
<tr class="separator:a2ec506a25e46cf7001060a6ba5ae3b94"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af4b8fe4b632cdca51ee7972ed93fc3fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4b8fe4b632cdca51ee7972ed93fc3fa"></a>
|
|
IndexT </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#af4b8fe4b632cdca51ee7972ed93fc3fa">stride_</a> [Dim]</td></tr>
|
|
<tr class="memdesc:af4b8fe4b632cdca51ee7972ed93fc3fa"><td class="mdescLeft"> </td><td class="mdescRight">Array of strides (in sizeof(T) terms) per each dimension. <br/></td></tr>
|
|
<tr class="separator:af4b8fe4b632cdca51ee7972ed93fc3fa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad96fbf0f5e7c06a1031b8b18f7fc01d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad96fbf0f5e7c06a1031b8b18f7fc01d7"></a>
|
|
IndexT </td><td class="memItemRight" valign="bottom"><a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ad96fbf0f5e7c06a1031b8b18f7fc01d7">size_</a> [Dim]</td></tr>
|
|
<tr class="memdesc:ad96fbf0f5e7c06a1031b8b18f7fc01d7"><td class="mdescLeft"> </td><td class="mdescRight">Size per each dimension. <br/></td></tr>
|
|
<tr class="separator:ad96fbf0f5e7c06a1031b8b18f7fc01d7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><h3>template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits><br/>
|
|
class faiss::gpu::Tensor< T, Dim, InnerContig, IndexT, PtrTraits ></h3>
|
|
|
|
<p>Our tensor type. </p>
|
|
<p>Templated multi-dimensional array that supports strided access of elements. Main access is through <code>operator[]</code>; e.g., <code>tensor[x][y][z]</code>.</p>
|
|
<ul>
|
|
<li><code>T</code> is the contained type (e.g., <code>float</code>)</li>
|
|
<li><code>Dim</code> is the tensor rank</li>
|
|
<li>If <code>InnerContig</code> is true, then the tensor is assumed to be innermost</li>
|
|
<li>contiguous, and only operations that make sense on contiguous</li>
|
|
<li>arrays are allowed (e.g., no transpose). Strides are still</li>
|
|
<li>calculated, but innermost stride is assumed to be 1.</li>
|
|
<li><code>IndexT</code> is the integer type used for size/stride arrays, and for</li>
|
|
<li>all indexing math. Default is <code>int</code>, but for large tensors, <code>long</code></li>
|
|
<li>can be used instead.</li>
|
|
<li><code>PtrTraits</code> are traits applied to our data pointer (T*). By default,</li>
|
|
<li>this is just T*, but RestrictPtrTraits can be used to apply T*</li>
|
|
<li><b>restrict</b> for alias-free analysis. </li>
|
|
</ul>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor_8cuh_source.html#l00030">30</a> of file <a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a>.</p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a class="anchor" id="ac651b20d86813b8928f05cde4fb1ff7d"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::<a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a> </td>
|
|
<td>(</td>
|
|
<td class="paramtype">DataPtrType </td>
|
|
<td class="paramname"><em>data</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const IndexT </td>
|
|
<td class="paramname"><em>sizes</em>[Dim], </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const IndexT </td>
|
|
<td class="paramname"><em>strides</em>[Dim] </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Constructor that takes arbitrary size/stride arrays. Errors if you attempt to pass non-contiguous strides to a contiguous tensor. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00087">87</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a class="anchor" id="a2ac9dc9fa8d81f2651a1be486c14ba62"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<typename NewIndexT > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ bool <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::canUseIndexType </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns true if we can use this indexing type to access all elements index type </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00325">325</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a2894f8fdfab8ec3245364a6f9e8a5259"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<typename U > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< U, Dim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::cast </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Cast to a tensor of a different type of the same size and stride. U and our type T must be of the same size </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00222">222</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a9f0c817e9751fe02926c2346a97f0350"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<typename NewIndexT > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, NewIndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::castIndexType </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Attempts to cast this tensor to a tensor of a different IndexT. Fails if size or stride entries are not representable in the new IndexT. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00305">305</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a6c9640c365134ccc33cdb2695b016eb3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<typename U > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< U, Dim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::castResize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Cast to a tensor of a different type which is potentially a different size than our type T. <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html" title="Our tensor type. ">Tensor</a> must be aligned and the innermost dimension must be a size that is a multiple of sizeof(U) / sizeof(T), and the stride of the innermost dimension must be contiguous. The stride of all outer dimensions must be a multiple of sizeof(U) / sizeof(T) as well. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00244">244</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a6a43125c6f429f28161d59f19eb8e5c5"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int NewDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, NewDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::downcastInner </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Downcast a tensor of dimension <code>D</code> to some tensor of dimension D' < D by collapsing the leading dimensions. asserts if there is padding on the leading dimensions. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00555">555</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a2185b0c1c2c06cc3a4dab6a88eb6d001"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int NewDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, NewDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::downcastOuter </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Downcast a tensor of dimension <code>D</code> to some tensor of dimension D' < D by collapsing the leading dimensions. asserts if there is padding on the leading dimensions. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00510">510</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a1afd11b16869df9d352ee8ab1f8c7a1f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ DataPtrType <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::end </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a raw pointer to the end of our data, assuming continuity </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor_8cuh_source.html#l00184">184</a> of file <a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a7e6b9cd8cc3cc0bfe39bd3fed7733e51"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ DataPtrType <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::end </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a raw pointer to the end of our data, assuming continuity (const) </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor_8cuh_source.html#l00196">196</a> of file <a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a6699c311648457f257afa340c61f417c"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ IndexT <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::getSize </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>i</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns the size of a given dimension, <code>[0, Dim - 1]</code>. No bounds checking. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor_8cuh_source.html#l00226">226</a> of file <a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a8220da958d022c322b80b0539c99f8d4"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ size_t <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::getSizeInBytes </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>If we are contiguous, returns the total size in bytes of our data </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor_8cuh_source.html#l00242">242</a> of file <a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0b8bba630f7a1fa217f90b20d298420a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ IndexT <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::getStride </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>i</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns the stride of a given dimension, <code>[0, Dim - 1]</code>. No bounds checking. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor_8cuh_source.html#l00232">232</a> of file <a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a663e3829c395372acdc8d2e71c0bdabe"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ bool <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::isConsistentlySized </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>i</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns whether a given dimension has only increasing stride from the previous dimension. A tensor that was permuted by exchanging size and stride only will fail this check. If <code>i == 0</code> just check <code>size > 0</code>. Returns <code>false</code> if <code>stride</code> is <code><= 0</code>. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00384">384</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a09019c54911db891c9321fd3b34509c2"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ bool <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::isContiguous </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns true if there is no padding within the tensor and no re-ordering of the dimensions. </p>
|
|
<div class="fragment"><div class="line">(stride(i) == size(i + 1) * stride(i + 1)) && stride(dim - 1) == 0</div>
|
|
</div><!-- fragment -->
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00365">365</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a3067941f8f8f09fc73e2f06243699825"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<typename OtherT , int OtherDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ bool <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::isSame </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< OtherT, OtherDim, InnerContig, IndexT, PtrTraits > & </td>
|
|
<td class="paramname"><em>rhs</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns true if the two tensors are of the same dimensionality, size and stride. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00180">180</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ab6db6bf86dd0f7e877af3a6ae2100fe3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::narrow </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>dim</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">IndexT </td>
|
|
<td class="paramname"><em>start</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">IndexT </td>
|
|
<td class="paramname"><em>size</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a tensor of the same dimension that is a view of the original tensor with the specified dimension restricted to the elements in the range [start, start + size). Can occur in an arbitrary dimension </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00633">633</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ac2d0fc7199901a8e0788b58f0970b133"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::narrowOutermost </td>
|
|
<td>(</td>
|
|
<td class="paramtype">IndexT </td>
|
|
<td class="paramname"><em>start</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">IndexT </td>
|
|
<td class="paramname"><em>size</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a tensor of the same dimension that is a view of the original tensor with the specified dimension restricted to the elements in the range [start, start + size) </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00625">625</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0ba9ab7c1676b7a41a6e6b2e5a490d2f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ size_t <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::numElements </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns the total number of elements contained within our data (product of <code>getSize(i)</code>) </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00352">352</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a82a3484a6458e3e95bb91d320f2c6731"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::transpose </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>dim1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>dim2</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a tensor of the same dimension after transposing the two dimensions given. Does not actually move elements; transposition is made by permuting the size/stride arrays. If the dimensions are not valid, asserts. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00420">420</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aee5cf46d16344e2a055cf63adb07d24a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int NewDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, NewDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::upcastInner </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Upcast a tensor of dimension <code>D</code> to some tensor of dimension D' > D by padding the lowest/most varying dimensions by 1 e.g., upcasting a 2-d tensor <code>[2][3]</code> to a 4-d tensor <code>[2][3][1][1]</code> </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00483">483</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a309eb97e9c6dbfdecf383343c072d38c"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int NewDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, NewDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::upcastOuter </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Upcast a tensor of dimension <code>D</code> to some tensor of dimension D' > D by padding the leading dimensions by 1 e.g., upcasting a 2-d tensor <code>[2][3]</code> to a 4-d tensor <code>[1][1][2][3]</code> </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00454">454</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a74dbc09519c9c14479b2d18f2e5042e8"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int SubDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, SubDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::view </td>
|
|
<td>(</td>
|
|
<td class="paramtype">DataPtrType </td>
|
|
<td class="paramname"><em>at</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a tensor that is a view of the <code>SubDim</code>-dimensional slice of this tensor, starting at <code>at</code>. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00598">598</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a35a63cfa4034a8ee14a999132d8a1828"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT , template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int SubDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, SubDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::view </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a tensor that is a view of the <code>SubDim</code>-dimensional slice of this tensor, starting where our data begins </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00618">618</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a665d97851f0929cad7fc76f945b64c97"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T , int Dim, bool InnerContig, typename IndexT, template< typename U > class PtrTraits> </div>
|
|
<div class="memtemplate">
|
|
template<int NewDim> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">__host__ __device__ <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">Tensor</a>< T, NewDim, InnerContig, IndexT, PtrTraits > <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html">faiss::gpu::Tensor</a>< T, Dim, InnerContig, IndexT, PtrTraits >::view </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::initializer_list< IndexT > </td>
|
|
<td class="paramname"><em>sizes</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Returns a view of the given tensor expressed as a tensor of a different number of dimensions. Only works if we are contiguous. </p>
|
|
|
|
<p>Definition at line <a class="el" href="Tensor-inl_8cuh_source.html#l00664">664</a> of file <a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>/data/users/matthijs/github_faiss/faiss/gpu/utils/<a class="el" href="Tensor_8cuh_source.html">Tensor.cuh</a></li>
|
|
<li>/data/users/matthijs/github_faiss/faiss/gpu/utils/<a class="el" href="Tensor-inl_8cuh_source.html">Tensor-inl.cuh</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.5
|
|
</small></address>
|
|
</body>
|
|
</html>
|