Creating o3d.t.geometry.PointCloud with points on CUDA takes longer than just performing analysis on the CPU
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
### Checklist
- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).
### My Question
Hello
I am trying to utilize the GPU of my Jetson Xavier NX to perform faster dbscan algorithms, but unfortunately I have observed that when I have to create and copy my original point cloud to a o3d.t.geometry.pointcloud then it takes 2+ seconds to copy the data points to the GPU which removes the whole point of speeding up processing with the GPU.
I there a way I can troubleshoot why is is taking so long to copy the point cloud to the GPU?
I have followed the example in the 0.16 documentation and this is all I am doing, but it takes around 3 seconds to perform the whole sequence, but only 0.7 seconds to perform the dbscan which is around 0.5 seconds faster than performing it on the ARM CPU of the jetson, but overall the copying of the data to the GPU makes it slower.
```
device = o3d.core.Device('CUDA:0')
dtype = o3d.core.float32
grounded_point_cloud_tensor = o3d.t.geometry.PointCloud(device)
grounded_point_cloud_tensor.point.positions = o3d.core.Tensor(np.asarray(grounded_point_cloud.points), dtype, device)
clustered_labels = grounded_point_cloud_tensor.cluster_dbscan(eps=extraction_filter_cfg.eps*self.depth_multiplier, min_points=int(min_points/n), print_progress=False)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.