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 void runIPDistance(GpuResources* resources,
39 Tensor<float, 2, true>& vectors,
40 Tensor<float, 2, true>* vectorsTransposed,
41 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,
49 Tensor<half, 2, true>* vectorsTransposed,
50 Tensor<half, 2, true>& queries,
52 Tensor<half, 2, true>& outDistances,
53 Tensor<int, 2, true>& outIndices,
56 void runL2Distance(GpuResources* resources,
57 Tensor<half, 2, true>& vectors,
58 Tensor<half, 2, true>* vectorsTransposed,
59 Tensor<half, 1, true>* vectorNorms,
60 Tensor<half, 2, true>& queries,
62 Tensor<half, 2, true>& outDistances,
63 Tensor<int, 2, true>& outIndices,
65 bool ignoreOutDistances =
false);