Skip to content

Commit 82b8bc8

Browse files
committed
Fix CUDA/MPI compile errors
1 parent 3975796 commit 82b8bc8

File tree

3 files changed

+31
-33
lines changed

3 files changed

+31
-33
lines changed

src/cpp/flann/algorithms/kdtree_cuda_3d_index.cu

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ struct GpuDistance< L1<float> >
273273

274274

275275
template< typename Distance >
276-
void KDTreeCuda3dIndex<Distance>::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params)
276+
void KDTreeCuda3dIndex<Distance>::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const
277277
{
278278
assert(indices.rows >= queries.rows);
279279
assert(dists.rows >= queries.rows);
@@ -436,7 +436,7 @@ void KDTreeCuda3dIndex<Distance>::knnSearchGpu(const Matrix<ElementType>& querie
436436

437437
template< typename Distance>
438438
int KDTreeCuda3dIndex<Distance >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,
439-
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params)
439+
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const
440440
{
441441
// assert(indices.roasdfws >= queries.rows);
442442
// assert(dists.rows >= queries.rows);
@@ -570,7 +570,7 @@ struct isNotMinusOne
570570
};
571571

572572
template< typename Distance>
573-
int KDTreeCuda3dIndex< Distance >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params)
573+
int KDTreeCuda3dIndex< Distance >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const
574574
{
575575
int max_neighbors = params.max_neighbors;
576576
assert(indices.rows >= queries.rows);
@@ -793,13 +793,13 @@ template
793793
struct KDTreeCuda3dIndex<flann::L2<float> >::GpuHelper;
794794

795795
template
796-
void KDTreeCuda3dIndex<flann::L2<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params);
796+
void KDTreeCuda3dIndex<flann::L2<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;
797797

798798
template
799-
int KDTreeCuda3dIndex< flann::L2<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params);
799+
int KDTreeCuda3dIndex< flann::L2<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const;
800800
template
801801
int KDTreeCuda3dIndex< flann::L2<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,
802-
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params);
802+
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;
803803

804804
// explicit instantiations for distance-independent functions
805805
template
@@ -812,13 +812,13 @@ template
812812
struct KDTreeCuda3dIndex<flann::L2_Simple<float> >::GpuHelper;
813813

814814
template
815-
void KDTreeCuda3dIndex<flann::L2_Simple<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params);
815+
void KDTreeCuda3dIndex<flann::L2_Simple<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;
816816

817817
template
818-
int KDTreeCuda3dIndex< flann::L2_Simple<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params);
818+
int KDTreeCuda3dIndex< flann::L2_Simple<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const;
819819
template
820820
int KDTreeCuda3dIndex< flann::L2_Simple<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,
821-
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params);
821+
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;
822822

823823

824824
// explicit instantiations for distance-independent functions
@@ -832,11 +832,11 @@ template
832832
struct KDTreeCuda3dIndex<flann::L1<float> >::GpuHelper;
833833

834834
template
835-
void KDTreeCuda3dIndex<flann::L1<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params);
835+
void KDTreeCuda3dIndex<flann::L1<float> >::knnSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, size_t knn, const SearchParams& params) const;
836836

837837
template
838-
int KDTreeCuda3dIndex< flann::L1<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params);
838+
int KDTreeCuda3dIndex< flann::L1<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, Matrix<int>& indices, Matrix<DistanceType>& dists, float radius, const SearchParams& params) const;
839839
template
840840
int KDTreeCuda3dIndex< flann::L1<float> >::radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,
841-
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params);
841+
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;
842842
}

src/cpp/flann/algorithms/kdtree_cuda_3d_index.h

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,6 @@ class KDTreeCuda3dIndex : public NNIndex<Distance>
7979

8080
typedef bool needs_kdtree_distance;
8181

82-
/**
83-
* KDTree constructor
84-
*
85-
* Params:
86-
* params = parameters passed to the kdtree algorithm
87-
*/
88-
KDTreeCuda3dIndex(const IndexParams& params = KDTreeCuda3dIndexParams(), Distance d = Distance() ) :
89-
BaseClass(params, d), leaf_count_(0), visited_leafs(0), node_count_(0), current_node_count_(0)
90-
{
91-
int dim_param = get_param(params,"dim",-1);
92-
if (dim_param>0) dim_ = dim_param;
93-
leaf_max_size_ = get_param(params,"leaf_max_size",10);
94-
assert( dim_ == 3 );
95-
gpu_helper_=0;
96-
}
97-
9882
/**
9983
* KDTree constructor
10084
*
@@ -103,15 +87,16 @@ class KDTreeCuda3dIndex : public NNIndex<Distance>
10387
* params = parameters passed to the kdtree algorithm
10488
*/
10589
KDTreeCuda3dIndex(const Matrix<ElementType>& inputData, const IndexParams& params = KDTreeCuda3dIndexParams(),
106-
Distance d = Distance() ) : BaseClass(params,d), leaf_count_(0), visited_leafs(0), node_count_(0), current_node_count_(0)
90+
Distance d = Distance() ) : BaseClass(params,d), dataset_(inputData), leaf_count_(0), visited_leafs(0), node_count_(0), current_node_count_(0)
10791
{
92+
size_ = dataset_.rows;
93+
dim_ = dataset_.cols;
94+
10895
int dim_param = get_param(params,"dim",-1);
10996
if (dim_param>0) dim_ = dim_param;
11097
leaf_max_size_ = get_param(params,"leaf_max_size",10);
11198
assert( dim_ == 3 );
11299
gpu_helper_=0;
113-
114-
setDataset(inputData);
115100
}
116101

117102
KDTreeCuda3dIndex(const KDTreeCuda3dIndex& other);
@@ -131,7 +116,6 @@ class KDTreeCuda3dIndex : public NNIndex<Distance>
131116
throw FLANNException("KDTreeCuda3dIndex cloning is not implemented");
132117
}
133118

134-
135119
/**
136120
* Builds the index
137121
*/
@@ -177,6 +161,11 @@ class KDTreeCuda3dIndex : public NNIndex<Distance>
177161
throw FLANNException( "Index loading not implemented!" );
178162
}
179163

164+
size_t veclen() const
165+
{
166+
return dim_;
167+
}
168+
180169
/**
181170
* Computes the inde memory usage
182171
* Returns: memory used by the index
@@ -271,6 +260,13 @@ class KDTreeCuda3dIndex : public NNIndex<Distance>
271260
int radiusSearchGpu(const Matrix<ElementType>& queries, std::vector< std::vector<int> >& indices,
272261
std::vector<std::vector<DistanceType> >& dists, float radius, const SearchParams& params) const;
273262

263+
/**
264+
* Not implemented, since it is only used by single-element searches.
265+
* (but is needed b/c it is abstract in the base class)
266+
*/
267+
void findNeighbors(ResultSet<DistanceType>& result, const ElementType* vec, const SearchParams& searchParams) const
268+
{
269+
}
274270

275271
private:
276272

@@ -287,6 +283,8 @@ class KDTreeCuda3dIndex : public NNIndex<Distance>
287283

288284
GpuHelper* gpu_helper_;
289285

286+
const Matrix<ElementType> dataset_;
287+
290288
int leaf_max_size_;
291289

292290
int leaf_count_;

src/cpp/flann/mpi/flann_mpi_client.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ int main(int argc, char* argv[])
6161
flann::load_from_file(match, "sift100K.h5","match");
6262
// flann::load_from_file(gt_dists, "sift100K.h5","dists");
6363

64-
flann::mpi::Client<float, float> index("localhost","9999");
64+
flann::mpi::Client index("localhost","9999");
6565

6666
int nn = 1;
6767
flann::Matrix<int> indices(new int[query.rows*nn], query.rows, nn);

0 commit comments

Comments
 (0)