Cuda Error 700
- 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 `master` branch).
### My Question
This question is related to issue https://github.com/isl-org/Open3D-ML/issues/548. In that issue @sanskar107 made me some questions that I want to answer. Of course that was caused by 3rd party system, spconv but I have used it in SECOND sparse middle extractor that I implemented in this repo and this error doesn't happen. After all, I figure out that this repo does not implement train set and validation set of the Kitti protocol. So, I modified the code to properly implement that.
So, answering your questions:
1. It seems that most spconv code is optimised to GPU. I got an error using CPU (passed --device cpu in run_pipeline.py):
```
assert indices.is_cuda, "implicit gemm only support cuda"
AssertionError: implicit gemm only supports cuda
```
2. It happens in the first frame_id: 000000
3. I Attached the data passed to the middle extractor. I made the following changes:
in parta2_kitti.yml
[log_train_2022-06-23_18:57:31.txt](https://github.com/isl-org/Open3D-ML/files/8969623/log_train_2022-06-23_18.57.31.txt)
```
voxelize:
max_num_points: 5
voxel_size: &vsize
[ 0.05, 0.05, 0.1 ]
max_voxels: {
'train': 16000,
'test': 40000
}
```
Then, I used your voxelized function as implemented in PointPillars.py.
In conclusion, I do not understand if the error is related to the data passed to the Middle Extractor, I implemented Second with MeanVoxelFeatureNet and the SECONDVoxelization.py and voxelized function that you use in PointPillars. I implemented the Sparse Middle Extractor as defined in their traveller repo that uses the same code that in the case of SparseConvUNet provide to me with the error mentioned in that issue, the code of Second Sparse Middle Extractor is as follows:
```
def __init__(self,
grid_size,
in_channels=4,
name='SparseMiddleExtractor'):
(...)
self.middle_conv = spconv.SparseSequential(
# Block 1
SubMConv3d(in_channels, 16, 3, indice_key="subm0"),
nn.BatchNorm1d(16, eps=1e-3, momentum=0.01),
nn.ReLU(),
SubMConv3d(16, 16, 3, indice_key="subm0"),
nn.BatchNorm1d(16, eps=1e-3, momentum=0.01),
nn.ReLU(),
SparseConv3d(16, 32, 3, 2,
padding=1), # [1600, 1200, 41] -> [800, 600, 21]
nn.BatchNorm1d(32, eps=1e-3, momentum=0.01),
nn.ReLU(),
(...)
)
def forward(self, voxel_features, coors, batch_size)
coors = coors.int()
ret = spconv.SparseConvTensor(
features=voxel_features,
indices=coors,
spatial_shape=self.sparse_shape,
batch_size=batch_size
)
ret = self.middle_conv(ret)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.