why the speed of RemoveStatisticalOutliers in cuda is slower than in 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
The speed of RemoveStatisticalOutliers can not meet my requirement,so I use the open3d version 0.17.0 to use RemoveStatisticalOutliers in cuda,but the speed of RemoveStatisticalOutliers in cuda is slower than in cpu . maybe there is some error in my code.
bool is_cuda = open3d::core::cuda::IsAvailable();
auto cloud = std::make_shared();
open3d::core::Device cuda = open3d::core::Device("CUDA:0");
if (open3d::io::ReadPointCloud("F:/PointCloudy/PCD/1.pcd", *cloud) == 0)
{
open3d::utility::LogWarning("pcd load failed!!!\n\n");
return;
}
auto down_pcd = cloud->VoxelDownSample(0.0001f);
auto down_pcd1 = cloud->VoxelDownSample(0.0001f);
std::tuple, std::vector>sor;
sor = down_pcd->RemoveStatisticalOutliers(100, 1); //RemoveStatisticalOutliers in cpu about 700ms
auto sor_cloud = std::get<0>(sor);
open3d::t::geometry::PointCloud pcd = open3d::t::geometry::PointCloud::FromLegacy(*down_pcd1, open3d::core::Float64, cuda);
auto res_t = pcd.RemoveStatisticalOutliers(100, 1); //RemoveStatisticalOutliers in cuda about 10000ms
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.