Skip to content

ContinuousConv on CUDA returns 0.0 (Open3D 0.18) #646

Description

@iSach

Checklist

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

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=<different from 0>
resmax=<different from 0>
rescmin=0.0
rescmax=0.0

Expected behavior

As with Open3D 0.17, FixedRadiusSearch should work properly on CUDA.

Open3D, Python and System information

- 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions