12 #include "../utils/DeviceTensor.cuh"
13 #include "../utils/Float16.cuh"
15 namespace faiss {
namespace gpu {
21 void runL2Distance(GpuResources* resources,
22 Tensor<float, 2, true>& vectors,
23 Tensor<float, 2, true>* vectorsTransposed,
26 Tensor<float, 1, true>* vectorNorms,
27 Tensor<float, 2, true>& queries,
29 Tensor<float, 2, true>& outDistances,
30 Tensor<int, 2, true>& outIndices,
33 bool ignoreOutDistances =
false);
37 void runIPDistance(GpuResources* resources,
38 Tensor<float, 2, true>& vectors,
39 Tensor<float, 2, true>* vectorsTransposed,
40 Tensor<float, 2, true>& queries,
42 Tensor<float, 2, true>& outDistances,
43 Tensor<int, 2, true>& outIndices);
45 #ifdef FAISS_USE_FLOAT16
46 void runIPDistance(GpuResources* resources,
47 Tensor<half, 2, true>& vectors,
48 Tensor<half, 2, true>* vectorsTransposed,
49 Tensor<half, 2, true>& queries,
51 Tensor<half, 2, true>& outDistances,
52 Tensor<int, 2, true>& outIndices,
55 void runL2Distance(GpuResources* resources,
56 Tensor<half, 2, true>& vectors,
57 Tensor<half, 2, true>* vectorsTransposed,
58 Tensor<half, 1, true>* vectorNorms,
59 Tensor<half, 2, true>& queries,
61 Tensor<half, 2, true>& outDistances,
62 Tensor<int, 2, true>& outIndices,
64 bool ignoreOutDistances =
false);