13 #include "../utils/DeviceTensor.cuh"
14 #include "../utils/Float16.cuh"
16 namespace faiss {
namespace gpu {
22 void runL2Distance(GpuResources* resources,
23 Tensor<float, 2, true>& vectors,
24 Tensor<float, 2, true>* vectorsTransposed,
27 Tensor<float, 1, true>* vectorNorms,
28 Tensor<float, 2, true>& queries,
30 Tensor<float, 2, true>& outDistances,
31 Tensor<int, 2, true>& outIndices,
34 bool ignoreOutDistances =
false,
38 int tileSizeOverride = -1);
42 void runIPDistance(GpuResources* resources,
43 Tensor<float, 2, true>& vectors,
44 Tensor<float, 2, true>* vectorsTransposed,
45 Tensor<float, 2, true>& queries,
47 Tensor<float, 2, true>& outDistances,
48 Tensor<int, 2, true>& outIndices,
52 int tileSizeOverride = -1);
54 #ifdef FAISS_USE_FLOAT16
55 void runIPDistance(GpuResources* resources,
56 Tensor<half, 2, true>& vectors,
57 Tensor<half, 2, true>* vectorsTransposed,
58 Tensor<half, 2, true>& queries,
60 Tensor<half, 2, true>& outDistances,
61 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,
74 bool ignoreOutDistances =
false,
75 int tileSizeOverride = -1);