21#ifdef BUILD_CUDA_MODULE
22template <
class T,
class TIndex>
23void KnnSearchCUDA(
const Tensor&
points,
24 const Tensor& points_row_splits,
25 const Tensor& queries,
26 const Tensor& queries_row_splits,
28 Tensor& neighbors_index,
29 Tensor& neighbors_row_splits,
30 Tensor& neighbors_distance);
33#ifdef BUILD_SYCL_MODULE
47template <
class T,
class TIndex>
49 const Tensor& points_row_splits,
50 const Tensor& queries,
51 const Tensor& queries_row_splits,
53 Tensor& neighbors_index,
54 Tensor& neighbors_row_splits,
55 Tensor& neighbors_distance,
57 int64_t max_tile_queries = 2048,
58 int64_t tile_points_alignment = 128,
59 bool force_addmm_path =
false);
84 const Dtype& index_dtype,
95 const Tensor& points_row_splits,
101 "[KnnIndex::SetTensorData with radius not implemented.");
105 int knn)
const override;
108 const Tensor& queries_row_splits,
113 bool sort)
const override {
114 utility::LogError(
"KnnIndex::SearchRadius not implemented.");
119 bool sort)
const override {
120 utility::LogError(
"KnnIndex::SearchRadius not implemented.");
124 const Tensor& query_points,
126 const int max_knn)
const override {
127 utility::LogError(
"KnnIndex::SearchHybrid not implemented.");
#define OPEN3D_API
Definition Macro.h:34
std::pair< Tensor, Tensor > SearchKnn(const Tensor &query_points, int knn) const override
Definition KnnIndex.cpp:97
std::tuple< Tensor, Tensor, Tensor > SearchRadius(const Tensor &query_points, const double radius, bool sort) const override
Definition KnnIndex.h:117
KnnIndex(const KnnIndex &)=delete
KnnIndex()
Definition KnnIndex.cpp:19
std::tuple< Tensor, Tensor, Tensor > SearchHybrid(const Tensor &query_points, const double radius, const int max_knn) const override
Definition KnnIndex.h:123
bool SetTensorData(const Tensor &dataset_points, const Dtype &index_dtype=core::Int64) override
Definition KnnIndex.cpp:38
int64_t tile_bytes_
Distance tile budget for SYCL (bytes). See kSYCLKnnDefaultTileBytes.
Definition KnnIndex.h:133
KnnIndex & operator=(const KnnIndex &)=delete
Tensor points_row_splits_
Definition KnnIndex.h:131
~KnnIndex()
Definition KnnIndex.cpp:36
bool SetTensorData(const Tensor &dataset_points, double radius, const Dtype &index_dtype=core::Int64) override
Definition KnnIndex.h:97
std::tuple< Tensor, Tensor, Tensor > SearchRadius(const Tensor &query_points, const Tensor &radii, bool sort) const override
Definition KnnIndex.h:111
Shared types and SYCL nearest-neighbor search tuning defaults.
void KnnSearchSYCL(const Tensor &points, const Tensor &points_row_splits, const Tensor &queries, const Tensor &queries_row_splits, int knn, Tensor &neighbors_index, Tensor &neighbors_row_splits, Tensor &neighbors_distance, int64_t tile_bytes, int64_t max_tile_queries, int64_t tile_points_alignment, bool force_addmm_path)
Definition KnnSearchOpsSYCL.cpp:285
constexpr int64_t kSYCLKnnDefaultTileBytes
SYCL NNS defaults for KnnIndex and FixedRadiusIndex constructors.
Definition NeighborSearchCommon.h:64
const Dtype Int64
Definition Dtype.cpp:47
Definition PinholeCameraIntrinsic.cpp:16