ContinuousConv on CUDA returns 0.0 (Open3D 0.18)
- Dominant language
- Python
- Stars
- 2.3k
- Forks
- 365
- Avg merge
- 4h 6m
- Merged PRs (30d)
- 1
Description
### Checklist
- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D-ML/issues).
- [X] 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 `main` branch).
### Describe the issue
On 0.17, CPU and GPU implementations for FixedRadiusSearch return the same result, which make CConv work as intented.
On 0.18, CPU works but GPU returns empty results. This makes CConv return 0.0 when using CUDA.
### Steps to reproduce the bug
```python
import torch
import open3d.ml.torch as t3d
torch.set_default_device('cuda')
inp_positions = torch.randn([20,3])
inp_features = torch.randn([20,4])
out_positions = torch.randn([10,3])
conv = t3d.layers.ContinuousConv(
in_channels=4,
filters=4,
kernel_size=[2,2,2],
)
res = conv(inp_features, inp_positions, out_positions, extents=2.0)
res_cuda = conv.cuda()(inp_features.cuda(), inp_positions.cuda(), out_positions.cuda(), extents=2.0)
resmin, resmax = res.min().item(), res.max().item()#, res_cuda.min().item(), res_cuda.max().item()
print(f"{resmin=}\n{resmax=}\n{rescmin=}\n{rescmax=}")
```
### Error message
resmin=
resmax=
rescmin=0.0
rescmax=0.0
### Expected behavior
As with Open3D 0.17, FixedRadiusSearch should work properly on CUDA.
### Open3D, Python and System information
```markdown
- Operating system: Ubuntu 22.04
- Python version: 3.10
- Open3D version: 0.18
- System type: x86
- Is this remote workstation?: yes
- How did you install Open3D?: pip (clean conda environment, only Torch & Open3D)
```
### Additional information
_No response_
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.