11 #include "../utils/DeviceTensor.cuh"
12 #include "../utils/Float16.cuh"
14 namespace faiss {
namespace gpu {
20 void runL2Distance(GpuResources* resources,
21 Tensor<float, 2, true>& vectors,
25 Tensor<float, 1, true>* vectorNorms,
26 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,
40 Tensor<float, 2, true>& queries,
43 Tensor<float, 2, true>& outDistances,
44 Tensor<int, 2, true>& outIndices);
46 #ifdef FAISS_USE_FLOAT16
47 void runIPDistance(GpuResources* resources,
48 Tensor<half, 2, true>& vectors,
50 Tensor<half, 2, true>& queries,
53 Tensor<half, 2, true>& outDistances,
54 Tensor<int, 2, true>& outIndices,
57 void runL2Distance(GpuResources* resources,
58 Tensor<half, 2, true>& vectors,
60 Tensor<half, 1, true>* vectorNorms,
61 Tensor<half, 2, true>& queries,
64 Tensor<half, 2, true>& outDistances,
65 Tensor<int, 2, true>& outIndices,
67 bool ignoreOutDistances =
false);