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
274 lines
42 KiB
HTML
274 lines
42 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: /data/users/matthijs/github_faiss/faiss/gpu/GpuIndexIVFPQ.h Source File</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><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li class="current"><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="files.html"><span>File List</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="dir_6b3ae6988449b0834e9596fad5d75199.html">gpu</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">GpuIndexIVFPQ.h</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (c) 2015-present, Facebook, Inc.</span></div>
|
|
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * All rights reserved.</span></div>
|
|
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This source code is licensed under the BSD+Patents license found in the</span></div>
|
|
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * LICENSE file in the root directory of this source tree.</span></div>
|
|
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
|
|
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// Copyright 2004-present Facebook. All Rights Reserved.</span></div>
|
|
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
|
|
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
|
|
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"></span></div>
|
|
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "GpuIndexIVF.h"</span></div>
|
|
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <vector></span></div>
|
|
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
|
|
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span>faiss { <span class="keyword">struct </span>IndexIVFPQ; }</div>
|
|
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
|
|
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span>faiss { <span class="keyword">namespace </span>gpu {</div>
|
|
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
|
|
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">class </span>GpuIndexFlat;</div>
|
|
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">class </span>IVFPQ;</div>
|
|
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
|
|
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html"> 23</a></span> <span class="keyword">struct </span><a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a> : <span class="keyword">public</span> <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFConfig.html">GpuIndexIVFConfig</a> {</div>
|
|
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">inline</span> <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a>()</div>
|
|
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  : <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#a9dbbec78d77d90b7b150f543e477cc49">useFloat16LookupTables</a>(<span class="keyword">false</span>),</div>
|
|
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#ae5b5c7acc06743e5bcca197bc33c30ec">usePrecomputedTables</a>(<span class="keyword">false</span>) {</div>
|
|
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  }</div>
|
|
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> /// Whether or not float16 residual distance tables are used in the</span></div>
|
|
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> /// list scanning kernels. When subQuantizers * 2^bitsPerCode ></span></div>
|
|
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> /// 16384, this is required.</span></div>
|
|
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#a9dbbec78d77d90b7b150f543e477cc49"> 32</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#a9dbbec78d77d90b7b150f543e477cc49">useFloat16LookupTables</a>;</div>
|
|
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> /// Whether or not we enable the precomputed table option for</span></div>
|
|
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> /// search, which can substantially increase the memory requirement.</span></div>
|
|
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#ae5b5c7acc06743e5bcca197bc33c30ec"> 36</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#ae5b5c7acc06743e5bcca197bc33c30ec">usePrecomputedTables</a>;</div>
|
|
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> };</div>
|
|
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">/// IVFPQ index for the GPU</span></div>
|
|
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html"> 40</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html">GpuIndexIVFPQ</a> : <span class="keyword">public</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html">GpuIndexIVF</a> {</div>
|
|
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">public</span>:<span class="comment"></span></div>
|
|
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> /// Construct from a pre-existing faiss::IndexIVFPQ instance, copying</span></div>
|
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> /// data over to the given GPU, if the input index is trained.</span></div>
|
|
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"></span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a56a552e8c2e29f33c39883145bd7629c">GpuIndexIVFPQ</a>(<a class="code" href="classfaiss_1_1gpu_1_1GpuResources.html">GpuResources</a>* resources,</div>
|
|
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <a class="code" href="structfaiss_1_1IndexIVFPQ.html">faiss::IndexIVFPQ</a>* index,</div>
|
|
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a> config = <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a>());</div>
|
|
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> /// Construct an empty index</span></div>
|
|
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"></span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a56a552e8c2e29f33c39883145bd7629c">GpuIndexIVFPQ</a>(<a class="code" href="classfaiss_1_1gpu_1_1GpuResources.html">GpuResources</a>* resources,</div>
|
|
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordtype">int</span> dims,</div>
|
|
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">int</span> nlist,</div>
|
|
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">int</span> subQuantizers,</div>
|
|
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">int</span> bitsPerCode,</div>
|
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="namespacefaiss.html#afd12191c638da74760ff397cf319752c">faiss::MetricType</a> metric,</div>
|
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a> config = <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a>());</div>
|
|
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
|
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  ~<a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html">GpuIndexIVFPQ</a>() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> /// Reserve space on the GPU for the inverted lists for `num`</span></div>
|
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> /// vectors, assumed equally distributed among</span></div>
|
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"></span><span class="comment"></span></div>
|
|
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> /// Initialize ourselves from the given CPU index; will overwrite</span></div>
|
|
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> /// all data in ourselves</span></div>
|
|
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a8d48f79af9080b55706050244fc24f0e">copyFrom</a>(<span class="keyword">const</span> <a class="code" href="structfaiss_1_1IndexIVFPQ.html">faiss::IndexIVFPQ</a>* index);</div>
|
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> /// Copy ourselves to the given CPU index; will overwrite all data</span></div>
|
|
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> /// in the index instance</span></div>
|
|
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#aad10de2407911e9adf42c1be5c5dd390">copyTo</a>(<a class="code" href="structfaiss_1_1IndexIVFPQ.html">faiss::IndexIVFPQ</a>* index) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> /// Reserve GPU memory in our inverted lists for this number of vectors</span></div>
|
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a4e7d62e21f7e23fa4e94c69131389eea">reserveMemory</a>(<span class="keywordtype">size_t</span> numVecs);</div>
|
|
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> /// Enable or disable pre-computed codes</span></div>
|
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#afda2894c0ce520e0d3d06eeca5ed5f0c">setPrecomputedCodes</a>(<span class="keywordtype">bool</span> enable);</div>
|
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> /// Are pre-computed codes enabled?</span></div>
|
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a679b0aaa229d571aeb842673e3493cc5">getPrecomputedCodes</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> /// Return the number of sub-quantizers we are using</span></div>
|
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a3869ea7898487334fb67ee499f38988d">getNumSubQuantizers</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> /// Return the number of bits per PQ code</span></div>
|
|
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#af87058de254e1430587a16b76f1e4377">getBitsPerCode</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> /// Return the number of centroids per PQ code (2^bits per code)</span></div>
|
|
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a2f50e79af6727962cd89534438d4769e">getCentroidsPerSubQuantizer</a>() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> /// After adding vectors, one can call this to reclaim device memory</span></div>
|
|
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"> /// to exactly the amount needed. Returns space reclaimed in bytes</span></div>
|
|
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment"></span> <span class="keywordtype">size_t</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a83831088d9593f753560965172ccb0a0">reclaimMemory</a>();</div>
|
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> /// Clears out all inverted lists, but retains the coarse and</span></div>
|
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> /// product centroid information</span></div>
|
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a3a43a70461e09ef87bdb7b48ec420dd2">reset</a>() <span class="keyword">override</span>;</div>
|
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
|
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#ac4814acafa4bc340a4c4bdcafd469b56">train</a>(<a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">Index::idx_t</a> n, <span class="keyword">const</span> <span class="keywordtype">float</span>* x) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> /// For debugging purposes, return the list length of a particular</span></div>
|
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> /// list</span></div>
|
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#ab7f77961857e560b4dbb81888a8c8bf8">getListLength</a>(<span class="keywordtype">int</span> listId) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> /// For debugging purposes, return the list codes of a particular</span></div>
|
|
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> /// list</span></div>
|
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"></span> std::vector<unsigned char> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a98f0000872701f9f23ac2073723a0aa7">getListCodes</a>(<span class="keywordtype">int</span> listId) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> /// For debugging purposes, return the list indices of a particular</span></div>
|
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> /// list</span></div>
|
|
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"></span> std::vector<long> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a5235cf241ef98e6012fd01907ec705d0">getListIndices</a>(<span class="keywordtype">int</span> listId) <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
|
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">protected</span>:<span class="comment"></span></div>
|
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> /// Called from GpuIndex for add/add_with_ids</span></div>
|
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a50e74f0621ca2fe5688825f434ad2bb2">addImpl_</a>(</div>
|
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a> n,</div>
|
|
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <span class="keywordtype">float</span>* x,</div>
|
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> <a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a>* ids) <span class="keyword">override</span>;</div>
|
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> /// Called from GpuIndex for search</span></div>
|
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a42f619bee6ecb268442c7807e75896fe">searchImpl_</a>(</div>
|
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a> n,</div>
|
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <span class="keywordtype">float</span>* x,</div>
|
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a> k,</div>
|
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">float</span>* distances,</div>
|
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a>* labels) <span class="keyword">const override</span>;</div>
|
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
|
|
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">private</span>:</div>
|
|
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">void</span> verifySettings_() <span class="keyword">const</span>;</div>
|
|
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
|
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">void</span> trainResidualQuantizer_(<a class="code" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">Index::idx_t</a> n, <span class="keyword">const</span> <span class="keywordtype">float</span>* x);</div>
|
|
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
|
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">private</span>:</div>
|
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">GpuIndexIVFPQConfig</a> ivfpqConfig_;</div>
|
|
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"> /// Number of sub-quantizers per encoded vector</span></div>
|
|
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"></span> <span class="keywordtype">int</span> subQuantizers_;</div>
|
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> /// Bits per sub-quantizer code</span></div>
|
|
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"></span> <span class="keywordtype">int</span> bitsPerCode_;</div>
|
|
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> /// Desired inverted list memory reservation</span></div>
|
|
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"></span> <span class="keywordtype">size_t</span> reserveMemoryVecs_;</div>
|
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"></span></div>
|
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"> /// The product quantizer instance that we own; contains the</span></div>
|
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"> /// inverted lists</span></div>
|
|
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"></span> <a class="code" href="classfaiss_1_1gpu_1_1IVFPQ.html">IVFPQ</a>* index_;</div>
|
|
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> };</div>
|
|
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
|
|
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> } } <span class="comment">// namespace</span></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a5235cf241ef98e6012fd01907ec705d0"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a5235cf241ef98e6012fd01907ec705d0">faiss::gpu::GpuIndexIVFPQ::getListIndices</a></div><div class="ttdeci">std::vector< long > getListIndices(int listId) const </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00407">GpuIndexIVFPQ.cu:407</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a42f619bee6ecb268442c7807e75896fe"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a42f619bee6ecb268442c7807e75896fe">faiss::gpu::GpuIndexIVFPQ::searchImpl_</a></div><div class="ttdeci">void searchImpl_(faiss::Index::idx_t n, const float *x, faiss::Index::idx_t k, float *distances, faiss::Index::idx_t *labels) const override</div><div class="ttdoc">Called from GpuIndex for search. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00348">GpuIndexIVFPQ.cu:348</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a3a43a70461e09ef87bdb7b48ec420dd2"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a3a43a70461e09ef87bdb7b48ec420dd2">faiss::gpu::GpuIndexIVFPQ::reset</a></div><div class="ttdeci">void reset() override</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00244">GpuIndexIVFPQ.cu:244</a></div></div>
|
|
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig_html_ae5b5c7acc06743e5bcca197bc33c30ec"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#ae5b5c7acc06743e5bcca197bc33c30ec">faiss::gpu::GpuIndexIVFPQConfig::usePrecomputedTables</a></div><div class="ttdeci">bool usePrecomputedTables</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8h_source.html#l00036">GpuIndexIVFPQ.h:36</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a56a552e8c2e29f33c39883145bd7629c"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a56a552e8c2e29f33c39883145bd7629c">faiss::gpu::GpuIndexIVFPQ::GpuIndexIVFPQ</a></div><div class="ttdeci">GpuIndexIVFPQ(GpuResources *resources, const faiss::IndexIVFPQ *index, GpuIndexIVFPQConfig config=GpuIndexIVFPQConfig())</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00025">GpuIndexIVFPQ.cu:25</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_ab7f77961857e560b4dbb81888a8c8bf8"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#ab7f77961857e560b4dbb81888a8c8bf8">faiss::gpu::GpuIndexIVFPQ::getListLength</a></div><div class="ttdeci">int getListLength(int listId) const </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00393">GpuIndexIVFPQ.cu:393</a></div></div>
|
|
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFConfig_html"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFConfig.html">faiss::gpu::GpuIndexIVFConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVF_8h_source.html#l00025">GpuIndexIVF.h:25</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuResources_html"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuResources.html">faiss::gpu::GpuResources</a></div><div class="ttdef"><b>Definition:</b> <a href="GpuResources_8h_source.html#l00023">GpuResources.h:23</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_af87058de254e1430587a16b76f1e4377"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#af87058de254e1430587a16b76f1e4377">faiss::gpu::GpuIndexIVFPQ::getBitsPerCode</a></div><div class="ttdeci">int getBitsPerCode() const </div><div class="ttdoc">Return the number of bits per PQ code. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00224">GpuIndexIVFPQ.cu:224</a></div></div>
|
|
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig_html_a9dbbec78d77d90b7b150f543e477cc49"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html#a9dbbec78d77d90b7b150f543e477cc49">faiss::gpu::GpuIndexIVFPQConfig::useFloat16LookupTables</a></div><div class="ttdeci">bool useFloat16LookupTables</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8h_source.html#l00032">GpuIndexIVFPQ.h:32</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVF_html"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVF.html">faiss::gpu::GpuIndexIVF</a></div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVF_8h_source.html#l00037">GpuIndexIVF.h:37</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_ac4814acafa4bc340a4c4bdcafd469b56"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#ac4814acafa4bc340a4c4bdcafd469b56">faiss::gpu::GpuIndexIVFPQ::train</a></div><div class="ttdeci">void train(Index::idx_t n, const float *x) override</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00300">GpuIndexIVFPQ.cu:300</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a83831088d9593f753560965172ccb0a0"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a83831088d9593f753560965172ccb0a0">faiss::gpu::GpuIndexIVFPQ::reclaimMemory</a></div><div class="ttdeci">size_t reclaimMemory()</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00234">GpuIndexIVFPQ.cu:234</a></div></div>
|
|
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig_html"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFPQConfig.html">faiss::gpu::GpuIndexIVFPQConfig</a></div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8h_source.html#l00023">GpuIndexIVFPQ.h:23</a></div></div>
|
|
<div class="ttc" id="structfaiss_1_1IndexIVFPQ_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFPQ.html">faiss::IndexIVFPQ</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVFPQ_8h_source.html#l00029">IndexIVFPQ.h:29</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a4e7d62e21f7e23fa4e94c69131389eea"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a4e7d62e21f7e23fa4e94c69131389eea">faiss::gpu::GpuIndexIVFPQ::reserveMemory</a></div><div class="ttdeci">void reserveMemory(size_t numVecs)</div><div class="ttdoc">Reserve GPU memory in our inverted lists for this number of vectors. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00194">GpuIndexIVFPQ.cu:194</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a8d48f79af9080b55706050244fc24f0e"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a8d48f79af9080b55706050244fc24f0e">faiss::gpu::GpuIndexIVFPQ::copyFrom</a></div><div class="ttdeci">void copyFrom(const faiss::IndexIVFPQ *index)</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00080">GpuIndexIVFPQ.cu:80</a></div></div>
|
|
<div class="ttc" id="structfaiss_1_1Index_html_a040c6aed1f224f3ea7bf58eebc0c31a4"><div class="ttname"><a href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eebc0c31a4">faiss::Index::idx_t</a></div><div class="ttdeci">long idx_t</div><div class="ttdoc">all indices are this type </div><div class="ttdef"><b>Definition:</b> <a href="Index_8h_source.html#l00062">Index.h:62</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a50e74f0621ca2fe5688825f434ad2bb2"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a50e74f0621ca2fe5688825f434ad2bb2">faiss::gpu::GpuIndexIVFPQ::addImpl_</a></div><div class="ttdeci">void addImpl_(faiss::Index::idx_t n, const float *x, const faiss::Index::idx_t *ids) override</div><div class="ttdoc">Called from GpuIndex for add/add_with_ids. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00319">GpuIndexIVFPQ.cu:319</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_aad10de2407911e9adf42c1be5c5dd390"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#aad10de2407911e9adf42c1be5c5dd390">faiss::gpu::GpuIndexIVFPQ::copyTo</a></div><div class="ttdeci">void copyTo(faiss::IndexIVFPQ *index) const </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00144">GpuIndexIVFPQ.cu:144</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html">faiss::gpu::GpuIndexIVFPQ</a></div><div class="ttdoc">IVFPQ index for the GPU. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8h_source.html#l00040">GpuIndexIVFPQ.h:40</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a3869ea7898487334fb67ee499f38988d"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a3869ea7898487334fb67ee499f38988d">faiss::gpu::GpuIndexIVFPQ::getNumSubQuantizers</a></div><div class="ttdeci">int getNumSubQuantizers() const </div><div class="ttdoc">Return the number of sub-quantizers we are using. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00219">GpuIndexIVFPQ.cu:219</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a2f50e79af6727962cd89534438d4769e"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a2f50e79af6727962cd89534438d4769e">faiss::gpu::GpuIndexIVFPQ::getCentroidsPerSubQuantizer</a></div><div class="ttdeci">int getCentroidsPerSubQuantizer() const </div><div class="ttdoc">Return the number of centroids per PQ code (2^bits per code) </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00229">GpuIndexIVFPQ.cu:229</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_afda2894c0ce520e0d3d06eeca5ed5f0c"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#afda2894c0ce520e0d3d06eeca5ed5f0c">faiss::gpu::GpuIndexIVFPQ::setPrecomputedCodes</a></div><div class="ttdeci">void setPrecomputedCodes(bool enable)</div><div class="ttdoc">Enable or disable pre-computed codes. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00203">GpuIndexIVFPQ.cu:203</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a679b0aaa229d571aeb842673e3493cc5"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a679b0aaa229d571aeb842673e3493cc5">faiss::gpu::GpuIndexIVFPQ::getPrecomputedCodes</a></div><div class="ttdeci">bool getPrecomputedCodes() const </div><div class="ttdoc">Are pre-computed codes enabled? </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00214">GpuIndexIVFPQ.cu:214</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1IVFPQ_html"><div class="ttname"><a href="classfaiss_1_1gpu_1_1IVFPQ.html">faiss::gpu::IVFPQ</a></div><div class="ttdoc">Implementing class for IVFPQ on the GPU. </div><div class="ttdef"><b>Definition:</b> <a href="IVFPQ_8cuh_source.html#l00019">IVFPQ.cuh:19</a></div></div>
|
|
<div class="ttc" id="namespacefaiss_html_afd12191c638da74760ff397cf319752c"><div class="ttname"><a href="namespacefaiss.html#afd12191c638da74760ff397cf319752c">faiss::MetricType</a></div><div class="ttdeci">MetricType</div><div class="ttdoc">Some algorithms support both an inner product version and a L2 search version. </div><div class="ttdef"><b>Definition:</b> <a href="Index_8h_source.html#l00043">Index.h:43</a></div></div>
|
|
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVFPQ_html_a98f0000872701f9f23ac2073723a0aa7"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a98f0000872701f9f23ac2073723a0aa7">faiss::gpu::GpuIndexIVFPQ::getListCodes</a></div><div class="ttdeci">std::vector< unsigned char > getListCodes(int listId) const </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFPQ_8cu_source.html#l00399">GpuIndexIVFPQ.cu:399</a></div></div>
|
|
</div><!-- fragment --></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>
|