Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
one
spconv
Commits
1635e9ef
Commit
1635e9ef
authored
Sep 22, 2022
by
yan.yan
Browse files
prepare spconv 2.2
parent
f8c25027
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
30 deletions
+28
-30
test/benchmark.py
test/benchmark.py
+24
-26
test/test_all_algo.py
test/test_all_algo.py
+3
-3
test/test_conv.py
test/test_conv.py
+1
-1
No files found.
test/benchmark.py
View file @
1635e9ef
...
@@ -22,7 +22,7 @@ from cumm import tensorview as tv
...
@@ -22,7 +22,7 @@ from cumm import tensorview as tv
from
spconv.core
import
ConvAlgo
from
spconv.core
import
ConvAlgo
import
spconv.pytorch
as
spconv
import
spconv.pytorch
as
spconv
from
spconv.utils
import
Point2VoxelCPU3d
from
spconv.utils
import
Point2VoxelCPU3d
,
Point2VoxelGPU3d
# torch.backends.cudnn.enabled = False
# torch.backends.cudnn.enabled = False
def
waymo_data
(
batch_size
=
1
,
num_features
=-
1
):
def
waymo_data
(
batch_size
=
1
,
num_features
=-
1
):
...
@@ -37,34 +37,33 @@ def waymo_data(batch_size=1, num_features=-1):
...
@@ -37,34 +37,33 @@ def waymo_data(batch_size=1, num_features=-1):
if
num_features
>
0
:
if
num_features
>
0
:
voxels
=
np
.
zeros
((
voxels
.
shape
[
0
],
num_features
),
dtype
=
voxels
.
dtype
)
voxels
=
np
.
zeros
((
voxels
.
shape
[
0
],
num_features
),
dtype
=
voxels
.
dtype
)
print
(
voxels
.
shape
)
coors
=
indices_tv
.
numpy
()
coors
=
indices_tv
.
numpy
()
N
=
coors
.
shape
[
0
]
N
=
coors
.
shape
[
0
]
coors
=
np
.
concatenate
([
np
.
full
([
N
,
1
],
0
,
coors
.
dtype
),
coors
],
axis
=
1
)
coors
=
np
.
concatenate
([
np
.
full
([
N
,
1
],
0
,
coors
.
dtype
),
coors
],
axis
=
1
)
return
voxels
,
coors
,
gen
.
grid_size
return
voxels
,
coors
,
gen
.
grid_size
def
waymo_data_large
(
batch_size
=
1
):
def
waymo_data_large
(
batch_size
=
1
):
gen
=
Point2Voxel
C
PU3d
([
0.1
,
0.1
,
0.1
],
[
-
80
,
-
80
,
-
2
,
80
,
80
,
6
],
3
,
gen
=
Point2Voxel
G
PU3d
([
0.1
,
0.1
,
0.1
],
[
-
80
,
-
80
,
-
2
,
80
00
,
80
00
,
6
],
3
,
1
2
00000
,
1
)
1
6
00000
,
1
)
# gen = VoxelGeneratorV2([0.1, 0.1, 0.1], [-80, -80, -2, 80, 80, 6], 1,
# gen = VoxelGeneratorV2([0.1, 0.1, 0.1], [-80, -80, -2, 80, 80, 6], 1,
# 150000)
# 150000)
data
=
np
.
load
(
Path
(
__file__
).
parent
/
"data"
/
"benchmark-pc.npz"
)
data
=
np
.
load
(
Path
(
__file__
).
parent
/
"data"
/
"benchmark-pc.npz"
)
pc
=
np
.
ascontiguousarray
(
data
[
"pc"
])
pc
=
np
.
ascontiguousarray
(
data
[
"pc"
])
pc2
=
pc
.
copy
()
pcs
=
[
pc
]
pc2
[:,
1
]
+=
1
# for i in range(7):
pc3
=
pc
.
copy
()
# pc2 = pc.copy()
pc3
[:,
1
]
+=
2
# pc2[:, 1] += i + 1
pc4
=
pc
.
copy
()
# pcs.append(pc2)
pc4
[:,
1
]
+=
3
pc5
=
pc
.
copy
()
pc
=
np
.
concatenate
(
pcs
)
pc5
[:,
1
]
+=
4
pc
=
np
.
concatenate
([
pc
,
pc2
,
pc3
,
pc4
,
pc5
])
print
(
pc
.
shape
)
print
(
pc
.
shape
)
voxels_tv
,
indices_tv
,
_
=
gen
.
point_to_voxel
(
tv
.
from_numpy
(
pc
))
voxels_tv
,
indices_tv
,
_
=
gen
.
point_to_voxel
_hash
(
tv
.
from_numpy
(
pc
)
.
cuda
()
)
voxels
=
voxels_tv
.
numpy
().
reshape
(
-
1
,
3
)
voxels
=
voxels_tv
.
cpu
().
numpy
().
reshape
(
-
1
,
3
)
coors
=
indices_tv
.
numpy
()
coors
=
indices_tv
.
cpu
().
numpy
()
N
=
coors
.
shape
[
0
]
N
=
coors
.
shape
[
0
]
print
(
"num voxels"
,
N
)
print
(
"num voxels"
,
N
,
gen
.
grid_size
)
# breakpoint()
coors
=
np
.
concatenate
([
np
.
full
([
N
,
1
],
0
,
coors
.
dtype
),
coors
],
axis
=
1
)
coors
=
np
.
concatenate
([
np
.
full
([
N
,
1
],
0
,
coors
.
dtype
),
coors
],
axis
=
1
)
return
voxels
,
coors
,
gen
.
grid_size
return
voxels
,
coors
,
gen
.
grid_size
...
@@ -218,8 +217,8 @@ class Net(nn.Module):
...
@@ -218,8 +217,8 @@ class Net(nn.Module):
)
)
max_batch_size
=
1
max_batch_size
=
1
# grid (dense map) is used for indice generation. use pre-allocated grid can run faster.
# grid (dense map) is used for indice generation. use pre-allocated grid can run faster.
self
.
grid
=
torch
.
full
([
max_batch_size
,
*
shape
],
-
1
,
#
self.grid = torch.full([max_batch_size, *shape], -1,
dtype
=
torch
.
int32
).
cuda
()
#
dtype=torch.int32).cuda()
# self.grid = None
# self.grid = None
self
.
shape
=
shape
self
.
shape
=
shape
...
@@ -228,7 +227,7 @@ class Net(nn.Module):
...
@@ -228,7 +227,7 @@ class Net(nn.Module):
coors
,
coors
,
self
.
shape
,
self
.
shape
,
batch_size
,
batch_size
,
self
.
grid
,
#
self.grid,
enable_timer
=
enable_timer
)
enable_timer
=
enable_timer
)
return
self
.
net
(
x
)
return
self
.
net
(
x
)
...
@@ -319,12 +318,11 @@ def main():
...
@@ -319,12 +318,11 @@ def main():
np
.
random
.
seed
(
50051
)
np
.
random
.
seed
(
50051
)
torch
.
manual_seed
(
50051
)
torch
.
manual_seed
(
50051
)
# voxels, coors, spatial_shape = waymo_data(num_features=128)
# voxels, coors, spatial_shape = waymo_data(num_features=3)
# with open("/home/yy/test_spconv.pkl", "wb") as f:
# with open(Path(__file__).parent / "data" / "test_spconv.pkl", "rb") as f:
# pickle.dump((voxels, coors, spatial_shape), f)
# (voxels, coors, spatial_shape) = pickle.load(f)
with
open
(
Path
(
__file__
).
parent
/
"data"
/
"test_spconv.pkl"
,
"rb"
)
as
f
:
voxels
,
coors
,
spatial_shape
=
waymo_data_large
()
(
voxels
,
coors
,
spatial_shape
)
=
pickle
.
load
(
f
)
# breakpoint()
# voxels, coors, spatial_shape = waymo_data_large()
print
(
spatial_shape
)
print
(
spatial_shape
)
print
(
voxels
.
shape
)
print
(
voxels
.
shape
)
...
...
test/test_all_algo.py
View file @
1635e9ef
...
@@ -899,9 +899,9 @@ def _test_native_conv_cuda(subm: bool):
...
@@ -899,9 +899,9 @@ def _test_native_conv_cuda(subm: bool):
def
test_all_algo_unit
():
def
test_all_algo_unit
():
# for i in range(5):
# for i in range(5):
_test_impgemm_conv_cuda
(
True
)
_test_impgemm_conv_cuda
(
True
)
_test_impgemm_conv_cuda
(
Tru
e
)
_test_impgemm_conv_cuda
(
Fals
e
)
_test_native_conv_cuda
(
True
)
#
_test_native_conv_cuda(True)
_test_native_conv_cuda
(
False
)
#
_test_native_conv_cuda(False)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
...
...
test/test_conv.py
View file @
1635e9ef
...
@@ -528,4 +528,4 @@ def test_spmaxpool3d():
...
@@ -528,4 +528,4 @@ def test_spmaxpool3d():
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
test_sp
conv
3d
()
test_sp
maxpool
3d
()
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment