Open3D (C++ API)  0.20.0
Loading...
Searching...
No Matches
SparseConvSYCLKernels.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2026 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8// SYCL port of SparseConvCUDAKernels.{h,cu}. Declares the im2col-style
9// "FillColumn" kernels shared by the SparseConv forward/backprop/transpose
10// ops. See SparseConvCUDAKernels.h for the detailed per-parameter docs; the
11// semantics here are identical, only the device queue type changed
12// (cudaStream_t -> sycl::queue&).
13#pragma once
14
15#include <sycl/sycl.hpp>
16#include <vector>
17
18namespace open3d {
19namespace ml {
20namespace impl {
21
30template <class TReal, class TIndex, class TKernelIndex>
31sycl::event FillColumnSYCL(sycl::queue& queue,
32 TReal* columns,
33 int in_channels,
34 TIndex begin_idx,
35 TIndex end_idx,
36 TIndex num_out,
37 TIndex num_inp,
38 const TReal* const inp_features,
39 const TReal* const inp_importance,
40 size_t neighbors_index_size,
41 const TIndex* const neighbors_index,
42 const TKernelIndex* const neighbors_kernel_index,
43 const TReal* const neighbors_importance,
44 const int64_t* const neighbors_row_splits,
45 const int num_kernel_elements,
46 bool normalize,
47 const std::vector<sycl::event>& deps = {});
48
54template <class TReal, class TIndex, class TKernelIndex>
55sycl::event FillColumnTransposeSYCL(
56 sycl::queue& queue,
57 TReal* columns,
58 int in_channels,
59 TIndex begin_idx,
60 TIndex end_idx,
61 TIndex num_out,
62 TIndex num_inp,
63 const TReal* const inp_features,
64 const TReal* const inp_neighbors_importance_sum,
65 const int64_t* const inp_neighbors_prefix_sum,
66 size_t neighbors_index_size,
67 const TIndex* const neighbors_index,
68 const TKernelIndex* const neighbors_kernel_index,
69 const TReal* const neighbors_importance,
70 const int64_t* const neighbors_row_splits,
71 const int num_kernel_elements,
72 bool normalize,
73 const std::vector<sycl::event>& deps = {});
74
75} // namespace impl
76} // namespace ml
77} // namespace open3d
sycl::queue queue
Definition SYCLContext.cpp:88
sycl::event FillColumnSYCL(sycl::queue &queue, TFeat *columns, int in_channels, TIndex begin_idx, TIndex end_idx, TIndex num_out, const TReal *const out_positions, TIndex num_inp, const TReal *const inp_positions, const TFeat *const inp_features, const TFeat *const inp_importance, size_t neighbors_index_size, const TIndex *const neighbors_index, const TFeat *const neighbors_importance, const int64_t *const neighbors_row_splits, const TReal *const extents, const TReal *const offsets, const std::vector< int > &filter_dims, InterpolationMode interpolation, CoordinateMapping coordinate_mapping, bool align_corners, bool individual_extent, bool isotropic_extent, bool normalize, const std::vector< sycl::event > &deps)
Definition ContinuousConvSYCLKernels.cpp:462
sycl::event FillColumnTransposeSYCL(sycl::queue &queue, TFeat *columns, int in_channels, TIndex begin_idx, TIndex end_idx, TIndex num_out, const TReal *const out_positions, TIndex num_inp, const TReal *const inp_positions, const TFeat *const inp_features, const TFeat *const inp_neighbors_importance_sum, const int64_t *const inp_neighbors_prefix_sum, size_t neighbors_index_size, const TIndex *const neighbors_index, const TFeat *const neighbors_importance, const int64_t *const neighbors_row_splits, const TReal *const extents, const TReal *const offsets, const std::vector< int > &filter_dims, InterpolationMode interpolation, CoordinateMapping coordinate_mapping, bool align_corners, bool individual_extent, bool isotropic_extent, bool normalize, const std::vector< sycl::event > &deps)
Definition ContinuousConvSYCLKernels.cpp:533
Definition PinholeCameraIntrinsic.cpp:16