Skip to content

Add SYCL support for t/geometry/t/pipelines kernels, Transform ops, and NNS CPU fallback#7443

Draft
ssheorey with Copilot wants to merge 30 commits into
mainfrom
copilot/add-sycl-kernels-for-cuda
Draft

Add SYCL support for t/geometry/t/pipelines kernels, Transform ops, and NNS CPU fallback#7443
ssheorey with Copilot wants to merge 30 commits into
mainfrom
copilot/add-sycl-kernels-for-cuda

Run SYCL tests on CPU on CI; skip unsupported tests

00572f0
Select commit
Loading
Failed to load commit list.
Codacy Production / Codacy Static Code Analysis required action Jul 7, 2026 in 0s

45 new issues (0 max.) of at least minor severity.

Codacy Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 5
- Added 45
           

Complexity increasing per file
==============================
- cpp/open3d/t/geometry/kernel/PointCloudImpl.h  2
- cpp/open3d/t/geometry/kernel/PointCloud.cpp  8
- python/test/open3d_test.py  4
- cpp/open3d/t/pipelines/kernel/TransformationConverter.cpp  4
- cpp/open3d/t/geometry/kernel/Image.cpp  12
- cpp/open3d/t/geometry/Image.cpp  4
- cpp/open3d/core/nns/NearestNeighborSearch.cpp  7
- cpp/open3d/core/nns/FixedRadiusIndex.cpp  8
- cpp/benchmarks/t/geometry/PointCloud.cpp  4
- cpp/tests/core/NearestNeighborSearch.cpp  32
- python/test/core/test_nn.py  12
- cpp/benchmarks/core/Reduction.cpp  4
- cpp/open3d/t/pipelines/kernel/FillInLinearSystem.cpp  6
- cpp/open3d/t/geometry/PointCloud.cpp  23
- cpp/open3d/core/Indexer.h  4
- cpp/open3d/t/geometry/TriangleMesh.cpp  13
- cpp/open3d/t/pipelines/kernel/RGBDOdometry.cpp  8
- cpp/tests/t/geometry/Image.cpp  7
- cpp/tests/t/pipelines/odometry/RGBDOdometry.cpp  4
- cpp/open3d/t/geometry/kernel/Transform.cpp  8
- cpp/benchmarks/core/NearestNeighborSearch.cpp  16
- cpp/open3d/core/ParallelFor.h  7
- cpp/open3d/core/nns/KnnIndex.cpp  5
- cpp/tests/core/KnnIndex.cpp  3
- cpp/open3d/core/hashmap/HashMap.cpp  4
- cpp/open3d/core/hashmap/HashBackendBuffer.cpp  4
- cpp/tests/core/HashMap.cpp  11
- cpp/open3d/core/hashmap/DeviceHashBackend.h  1
- cpp/open3d/core/hashmap/DeviceHashBackend.cpp  3
- cpp/benchmarks/core/HashMap.cpp  2
- cpp/benchmarks/t/io/PointCloudIO.cpp  1
- cpp/open3d/t/pipelines/kernel/Registration.cpp  12
- cpp/benchmarks/core/ParallelFor.cpp  3
- cpp/open3d/t/geometry/kernel/VoxelBlockGrid.cpp  16
- cpp/tests/t/geometry/VoxelBlockGrid.cpp  12
- cpp/open3d/t/geometry/kernel/VoxelBlockGridImpl.h  19
- cpp/open3d/utility/CompilerInfo.cpp  2
- cpp/open3d/core/SYCLUtils.h  8
- python/test/t/geometry/test_trianglemesh.py  1
- cpp/tests/core/CoreTest.cpp  3
- cpp/open3d/core/SYCLContext.cpp  9
- cpp/benchmarks/t/io/TriangleMeshIO.cpp  1
- cpp/open3d/t/pipelines/kernel/Feature.cpp  3
- cpp/tests/t/pipelines/registration/Feature.cpp  2
- cpp/benchmarks/t/pipelines/registration/Feature.cpp  1
- cpp/open3d/core/kernel/BinaryEWSYCL.cpp  12
- cpp/open3d/core/linalg/LeastSquaresSYCL.cpp  1
- cpp/open3d/core/kernel/ReductionSYCL.cpp  32
- cpp/open3d/t/pipelines/kernel/FeatureSYCL.cpp  28
- cpp/open3d/t/pipelines/kernel/FillInLinearSystemSYCL.cpp  60
- cpp/open3d/t/pipelines/kernel/RegistrationSYCL.cpp  22
- cpp/open3d/t/pipelines/kernel/TransformationConverterSYCL.cpp  2
- cpp/open3d/t/pipelines/kernel/RGBDOdometrySYCL.cpp  22
- cpp/open3d/core/nns/KnnSearchOpsSYCL.cpp  45
- cpp/open3d/t/geometry/kernel/TransformSYCL.cpp  4
- cpp/open3d/t/geometry/kernel/PointCloudSYCL.cpp  13
- cpp/open3d/t/geometry/kernel/TriangleMeshSYCL.cpp  2
- cpp/open3d/t/geometry/kernel/VoxelBlockGridSYCL.cpp  19
- cpp/open3d/core/hashmap/SYCL/CreateSYCLHashBackend.cpp  3
- cpp/open3d/core/hashmap/SYCL/SYCLHashBackend.h  84
- cpp/open3d/core/hashmap/SYCL/SYCLHashBackendBuffer.cpp  1
- cpp/open3d/core/hashmap/SYCL/SYCLHashBackendBufferAccessor.h  8
- python/test/t/geometry/test_voxel_block_grid.py  6
- cpp/open3d/core/nns/kernel/KnnSearchSYCLImpl.h  245
- cpp/open3d/core/BlockCopyDispatch.h  3
         

Complexity decreasing per file
==============================
+ cpp/tests/t/geometry/PointCloud.cpp  -9
+ cpp/tests/t/geometry/TriangleMesh.cpp  -6
+ cpp/tests/t/geometry/LineSet.cpp  -2
+ cpp/open3d/core/SYCLContext.h  -1
+ cpp/tests/t/geometry/AxisAlignedBoundingBox.cpp  -1
+ cpp/tests/t/geometry/OrientedBoundingBox.cpp  -1
         

Clones added
============
- cpp/tests/core/NearestNeighborSearch.cpp  12
- python/test/core/test_nn.py  9
- cpp/open3d/t/pipelines/kernel/FillInLinearSystem.cpp  2
- cpp/open3d/t/geometry/PointCloud.cpp  6
- cpp/tests/t/geometry/Image.cpp  3
- cpp/tests/core/KnnIndex.cpp  1
- cpp/benchmarks/core/HashMap.cpp  8
- cpp/open3d/t/pipelines/kernel/Registration.cpp  11
- cpp/benchmarks/core/ParallelFor.cpp  2
- cpp/tests/t/geometry/VoxelBlockGrid.cpp  4
- cpp/open3d/core/SYCLUtils.cpp  1
- cpp/open3d/core/SYCLContext.cpp  1
- cpp/open3d/t/pipelines/kernel/Feature.cpp  1
- cpp/open3d/core/kernel/UnaryEWSYCL.cpp  10
- cpp/open3d/core/kernel/BinaryEWSYCL.cpp  16
- cpp/open3d/t/pipelines/kernel/FeatureSYCL.cpp  1
- cpp/open3d/t/pipelines/kernel/FillInLinearSystemSYCL.cpp  16
- cpp/open3d/t/pipelines/kernel/RegistrationSYCL.cpp  47
- cpp/open3d/t/pipelines/kernel/RGBDOdometrySYCL.cpp  40
- cpp/open3d/core/nns/KnnSearchOpsSYCL.cpp  39
- cpp/open3d/t/geometry/kernel/TransformSYCL.cpp  4
- cpp/open3d/t/geometry/kernel/PointCloudSYCL.cpp  6
- cpp/open3d/t/geometry/kernel/TriangleMeshSYCL.cpp  2
- cpp/open3d/t/geometry/kernel/VoxelBlockGridSYCL.cpp  4
- cpp/open3d/core/hashmap/SYCL/CreateSYCLHashBackend.cpp  2
- python/test/t/geometry/test_voxel_block_grid.py  2
         

Clones removed
==============
+ cpp/tests/t/geometry/PointCloud.cpp  -3
+ cpp/open3d/t/geometry/Image.cpp  -3
+ cpp/tests/t/geometry/AxisAlignedBoundingBox.cpp  -4
+ cpp/open3d/core/kernel/ArangeSYCL.cpp  -1
+ cpp/open3d/core/kernel/ReductionSYCL.cpp  -2
         

See the complete overview on Codacy