Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
f8822187
Commit
f8822187
authored
May 04, 2022
by
charlie
Browse files
Fixing serialization errors
parent
8bf8e161
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
11 deletions
+43
-11
src/include/migraphx/shape.hpp
src/include/migraphx/shape.hpp
+4
-3
src/shape.cpp
src/shape.cpp
+39
-8
No files found.
src/include/migraphx/shape.hpp
View file @
f8822187
...
...
@@ -132,9 +132,10 @@ struct shape
std
::
size_t
type_size
()
const
;
const
std
::
vector
<
dynamic_dimension
>&
dyn_dims
()
const
;
const
std
::
vector
<
std
::
size_t
>&
min_dyn_dims
()
const
;
const
std
::
vector
<
std
::
size_t
>&
max_dyn_dims
()
const
;
const
std
::
vector
<
std
::
size_t
>&
opt_dyn_dims
()
const
;
const
std
::
vector
<
std
::
size_t
>
min_dyn_dims
()
const
;
const
std
::
vector
<
std
::
size_t
>
max_dyn_dims
()
const
;
const
std
::
vector
<
std
::
size_t
>
opt_dyn_dims
()
const
;
/// Map multiple indices to space index
std
::
size_t
index
(
std
::
initializer_list
<
std
::
size_t
>
l
)
const
;
...
...
src/shape.cpp
View file @
f8822187
...
...
@@ -210,8 +210,6 @@ std::size_t shape::type_size() const
return
n
;
}
const
std
::
vector
<
shape
::
dynamic_dimension
>&
shape
::
dyn_dims
()
const
{
return
impl
->
m_dyn_dims
;
}
std
::
size_t
shape
::
index
(
std
::
initializer_list
<
std
::
size_t
>
l
)
const
{
if
(
this
->
dynamic
())
...
...
@@ -283,8 +281,6 @@ void shape::multi_copy(std::size_t i, std::size_t* start, const std::size_t* end
});
}
bool
shape
::
dynamic
()
const
{
return
(
impl
->
m_dynamic
);
}
bool
shape
::
packed
()
const
{
if
(
this
->
dynamic
())
...
...
@@ -383,6 +379,43 @@ std::size_t shape::element_space() const { return impl->element_space(); }
std
::
string
shape
::
type_string
()
const
{
return
name
(
this
->
type
());
}
bool
shape
::
dynamic
()
const
{
return
impl
->
m_dynamic
;
}
const
std
::
vector
<
shape
::
dynamic_dimension
>&
shape
::
dyn_dims
()
const
{
return
impl
->
m_dyn_dims
;
}
const
std
::
vector
<
std
::
size_t
>
shape
::
min_dyn_dims
()
const
{
auto
num_dims
=
dyn_dims
().
size
();
std
::
vector
<
std
::
size_t
>
ret
{
num_dims
};
for
(
int
i
=
0
;
i
<
num_dims
;
++
i
)
{
ret
.
at
(
i
)
=
dyn_dims
().
at
(
i
).
min
;
}
return
ret
;
}
const
std
::
vector
<
std
::
size_t
>
shape
::
max_dyn_dims
()
const
{
auto
num_dims
=
dyn_dims
().
size
();
std
::
vector
<
std
::
size_t
>
ret
{
num_dims
};
for
(
int
i
=
0
;
i
<
num_dims
;
++
i
)
{
ret
.
at
(
i
)
=
dyn_dims
().
at
(
i
).
max
;
}
return
ret
;
}
const
std
::
vector
<
std
::
size_t
>
shape
::
opt_dyn_dims
()
const
{
auto
num_dims
=
dyn_dims
().
size
();
std
::
vector
<
std
::
size_t
>
ret
{
num_dims
};
for
(
int
i
=
0
;
i
<
num_dims
;
++
i
)
{
ret
.
at
(
i
)
=
dyn_dims
().
at
(
i
).
opt
;
}
return
ret
;
}
bool
operator
==
(
const
shape
&
x
,
const
shape
&
y
)
{
if
(
x
.
dynamic
()
and
y
.
dynamic
())
...
...
@@ -436,10 +469,10 @@ const std::vector<shape>& shape::sub_shapes() const { return impl->m_shapes; }
void
migraphx_to_value
(
value
&
v
,
const
shape
&
s
)
{
value
result
;
result
[
"type"
]
=
migraphx
::
to_value
(
s
.
type_string
());
if
(
s
.
dynamic
())
{
result
[
"dynamic"
]
=
migraphx
::
to_value
(
s
.
dynamic
());
result
[
"type"
]
=
migraphx
::
to_value
(
s
.
type_string
());
result
[
"min_dyn_dims"
]
=
migraphx
::
to_value
(
s
.
min_dyn_dims
());
result
[
"max_dyn_dims"
]
=
migraphx
::
to_value
(
s
.
max_dyn_dims
());
result
[
"opt_dyn_dims"
]
=
migraphx
::
to_value
(
s
.
opt_dyn_dims
());
...
...
@@ -447,7 +480,6 @@ void migraphx_to_value(value& v, const shape& s)
}
else
{
result
[
"type"
]
=
migraphx
::
to_value
(
s
.
type_string
());
result
[
"lens"
]
=
migraphx
::
to_value
(
s
.
lens
());
result
[
"strides"
]
=
migraphx
::
to_value
(
s
.
strides
());
result
[
"sub_shapes"
]
=
migraphx
::
to_value
(
s
.
sub_shapes
());
...
...
@@ -464,8 +496,7 @@ void migraphx_from_value(const value& v, shape& s)
}
else
{
auto
dyn
=
v
.
at
(
"dynamic"
).
get_bool
();
if
(
dyn
)
if
(
v
.
contains
(
"dynamic"
))
{
auto
mins
=
v
.
at
(
"min_dyn_dims"
).
to_vector
<
std
::
size_t
>
();
auto
maxes
=
v
.
at
(
"max_dyn_dims"
).
to_vector
<
std
::
size_t
>
();
...
...
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