14 #include "../utils/DeviceTensor.cuh"
15 #include "../utils/Float16.cuh"
17 namespace faiss {
namespace gpu {
23 void runL2Distance(GpuResources* resources,
24 Tensor<float, 2, true>& vectors,
25 Tensor<float, 2, true>* vectorsTransposed,
28 Tensor<float, 1, true>* vectorNorms,
29 Tensor<float, 2, true>& queries,
31 Tensor<float, 2, true>& outDistances,
32 Tensor<int, 2, true>& outIndices,
35 bool ignoreOutDistances =
false,
39 int tileSizeOverride = -1);
43 void runIPDistance(GpuResources* resources,
44 Tensor<float, 2, true>& vectors,
45 Tensor<float, 2, true>* vectorsTransposed,
46 Tensor<float, 2, true>& queries,
48 Tensor<float, 2, true>& outDistances,
49 Tensor<int, 2, true>& outIndices,
53 int tileSizeOverride = -1);
55 #ifdef FAISS_USE_FLOAT16
56 void runIPDistance(GpuResources* resources,
57 Tensor<half, 2, true>& vectors,
58 Tensor<half, 2, true>* vectorsTransposed,
59 Tensor<half, 2, true>& queries,
61 Tensor<half, 2, true>& outDistances,
62 Tensor<int, 2, true>& outIndices,
63 int tileSizeOverride = -1);
65 void runL2Distance(GpuResources* resources,
66 Tensor<half, 2, true>& vectors,
67 Tensor<half, 2, true>* vectorsTransposed,
68 Tensor<half, 1, true>* vectorNorms,
69 Tensor<half, 2, true>& queries,
71 Tensor<half, 2, true>& outDistances,
72 Tensor<int, 2, true>& outIndices,
73 bool ignoreOutDistances =
false,
74 int tileSizeOverride = -1);