Open3D (C++ API)  0.17.0
SparseConvCUDAKernels.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2023 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 #include <vector>
10 
11 namespace open3d {
12 namespace ml {
13 namespace impl {
14 
66 template <class TReal, class TIndex, class TKernelIndex>
67 void FillColumn(const cudaStream_t& stream,
68  TReal* columns,
69  int in_channels,
70  TIndex begin_idx,
71  TIndex end_idx,
72  TIndex num_out,
73  TIndex num_inp,
74  const TReal* const __restrict__ inp_features,
75  const TReal* const __restrict__ inp_importance,
76  size_t neighbors_index_size,
77  const TIndex* const __restrict__ neighbors_index,
78  const TKernelIndex* const __restrict__ neighbors_kernel_index,
79  const TReal* const __restrict__ neighbors_importance,
80  const int64_t* const __restrict__ neighbors_row_splits,
81  const int num_kernel_elements,
82  bool normalize);
83 
86 template <class TReal, class TIndex, class TKernelIndex>
88  const cudaStream_t& stream,
89  TReal* columns,
90  int in_channels,
91  TIndex begin_idx,
92  TIndex end_idx,
93  TIndex num_out,
94  TIndex num_inp,
95  const TReal* const __restrict__ inp_features,
96  const TReal* const __restrict__ inp_neighbors_importance_sum,
97  const int64_t* const __restrict__ inp_neighbors_prefix_sum,
98  size_t neighbors_index_size,
99  const TIndex* const __restrict__ neighbors_index,
100  const TKernelIndex* const __restrict__ neighbors_kernel_index,
101  const TReal* const __restrict__ neighbors_importance,
102  const int64_t* const __restrict__ neighbors_row_splits,
103  const int num_kernel_elements,
104  bool normalize);
105 
106 } // namespace impl
107 } // namespace ml
108 } // namespace open3d
void FillColumnTranspose(const cudaStream_t &stream, TFeat *columns, int in_channels, TIndex begin_idx, TIndex end_idx, TIndex num_out, const TReal *const __restrict__ out_positions, TIndex num_inp, const TReal *const __restrict__ inp_positions, const TFeat *const __restrict__ inp_features, const TFeat *const __restrict__ inp_neighbors_importance_sum, const int64_t *const __restrict__ inp_neighbors_prefix_sum, size_t neighbors_index_size, const TIndex *const __restrict__ neighbors_index, const TFeat *const __restrict__ neighbors_importance, const int64_t *const __restrict__ neighbors_row_splits, const TReal *const __restrict__ extents, const TReal *const __restrict__ offsets, const std::vector< int > &filter_dims, InterpolationMode interpolation, CoordinateMapping coordinate_mapping, bool align_corners, bool individual_extent, bool isotropic_extent, bool normalize)
void FillColumn(const cudaStream_t &stream, TFeat *columns, int in_channels, TIndex begin_idx, TIndex end_idx, TIndex num_out, const TReal *const __restrict__ out_positions, TIndex num_inp, const TReal *const __restrict__ inp_positions, const TFeat *const __restrict__ inp_features, const TFeat *const __restrict__ inp_importance, size_t neighbors_index_size, const TIndex *const __restrict__ neighbors_index, const TFeat *const __restrict__ neighbors_importance, const int64_t *const __restrict__ neighbors_row_splits, const TReal *const __restrict__ extents, const TReal *const __restrict__ offsets, const std::vector< int > &filter_dims, InterpolationMode interpolation, CoordinateMapping coordinate_mapping, bool align_corners, bool individual_extent, bool isotropic_extent, bool normalize)
Definition: PinholeCameraIntrinsic.cpp:16