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
3272b22e
Commit
3272b22e
authored
Feb 12, 2022
by
Shucai Xiao
Browse files
clang format
parent
94e3a2e4
Changes
109
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
53 additions
and
71 deletions
+53
-71
src/api/api.cpp
src/api/api.cpp
+4
-5
src/api/include/migraphx/migraphx.hpp
src/api/include/migraphx/migraphx.hpp
+2
-5
src/argument.cpp
src/argument.cpp
+2
-2
src/cpp_generator.cpp
src/cpp_generator.cpp
+1
-1
src/dead_code_elimination.cpp
src/dead_code_elimination.cpp
+1
-1
src/driver/main.cpp
src/driver/main.cpp
+1
-1
src/include/migraphx/gemm.hpp
src/include/migraphx/gemm.hpp
+1
-1
src/include/migraphx/load_save.hpp
src/include/migraphx/load_save.hpp
+1
-2
src/include/migraphx/op/gather.hpp
src/include/migraphx/op/gather.hpp
+1
-1
src/include/migraphx/op/loop.hpp
src/include/migraphx/op/loop.hpp
+3
-3
src/include/migraphx/op/nonmaxsuppression.hpp
src/include/migraphx/op/nonmaxsuppression.hpp
+3
-3
src/include/migraphx/op/pooling.hpp
src/include/migraphx/op/pooling.hpp
+1
-1
src/include/migraphx/par_dfor.hpp
src/include/migraphx/par_dfor.hpp
+6
-9
src/include/migraphx/program.hpp
src/include/migraphx/program.hpp
+1
-2
src/include/migraphx/tf.hpp
src/include/migraphx/tf.hpp
+2
-2
src/onnx/parse_gru.cpp
src/onnx/parse_gru.cpp
+2
-3
src/onnx/parse_lstm.cpp
src/onnx/parse_lstm.cpp
+2
-3
src/onnx/parse_resize.cpp
src/onnx/parse_resize.cpp
+11
-17
src/onnx/parse_rnn.cpp
src/onnx/parse_rnn.cpp
+2
-3
src/opt/memory_coloring_impl.cpp
src/opt/memory_coloring_impl.cpp
+6
-6
No files found.
src/api/api.cpp
View file @
3272b22e
...
@@ -94,9 +94,7 @@ void set_nhwc(tf_options& options, bool is_nhwc) { options.is_nhwc = is_nhwc; }
...
@@ -94,9 +94,7 @@ void set_nhwc(tf_options& options, bool is_nhwc) { options.is_nhwc = is_nhwc; }
void
set_default_dim_value
(
tf_options
&
options
,
size_t
value
)
{
options
.
batch_size
=
value
;
}
void
set_default_dim_value
(
tf_options
&
options
,
size_t
value
)
{
options
.
batch_size
=
value
;
}
void
set_input_parameter_shape
(
onnx_options
&
options
,
void
set_input_parameter_shape
(
onnx_options
&
options
,
const
char
*
name
,
std
::
vector
<
int
>
dims
)
const
char
*
name
,
std
::
vector
<
int
>
dims
)
{
{
options
.
map_input_dims
[
std
::
string
(
name
)]
=
std
::
move
(
dims
);
options
.
map_input_dims
[
std
::
string
(
name
)]
=
std
::
move
(
dims
);
}
}
...
@@ -855,8 +853,9 @@ migraphx_operation_name(char* out, int out_size, migraphx_operation_t operation)
...
@@ -855,8 +853,9 @@ migraphx_operation_name(char* out, int out_size, migraphx_operation_t operation)
if
(
operation
==
nullptr
)
if
(
operation
==
nullptr
)
MIGRAPHX_THROW
(
migraphx_status_bad_param
,
"Bad parameter operation: Null pointer"
);
MIGRAPHX_THROW
(
migraphx_status_bad_param
,
"Bad parameter operation: Null pointer"
);
auto
&&
api_result
=
(
operation
->
object
).
name
();
auto
&&
api_result
=
(
operation
->
object
).
name
();
auto
*
it
=
std
::
copy_n
(
api_result
.
begin
(),
std
::
min
(
static_cast
<
int
>
(
api_result
.
size
()),
out_size
-
1
),
out
);
auto
*
it
=
std
::
copy_n
(
*
it
=
'\0'
;
api_result
.
begin
(),
std
::
min
(
static_cast
<
int
>
(
api_result
.
size
()),
out_size
-
1
),
out
);
*
it
=
'\0'
;
});
});
return
api_error_result
;
return
api_error_result
;
}
}
...
...
src/api/include/migraphx/migraphx.hpp
View file @
3272b22e
...
@@ -235,9 +235,7 @@ struct shape : MIGRAPHX_CONST_HANDLE_BASE(shape)
...
@@ -235,9 +235,7 @@ struct shape : MIGRAPHX_CONST_HANDLE_BASE(shape)
this
->
make_handle
(
&
migraphx_shape_create
,
type
,
plengths
.
data
(),
plengths
.
size
());
this
->
make_handle
(
&
migraphx_shape_create
,
type
,
plengths
.
data
(),
plengths
.
size
());
}
}
shape
(
migraphx_shape_datatype_t
type
,
shape
(
migraphx_shape_datatype_t
type
,
std
::
vector
<
int
>
plengths
,
std
::
vector
<
int
>
pstrides
)
std
::
vector
<
int
>
plengths
,
std
::
vector
<
int
>
pstrides
)
{
{
this
->
make_handle
(
&
migraphx_shape_create_with_strides
,
this
->
make_handle
(
&
migraphx_shape_create_with_strides
,
type
,
type
,
...
@@ -699,8 +697,7 @@ inline program parse_onnx(const char* filename)
...
@@ -699,8 +697,7 @@ inline program parse_onnx(const char* filename)
}
}
/// Parse a buffer of memory as an onnx file
/// Parse a buffer of memory as an onnx file
inline
program
inline
program
parse_onnx_buffer
(
const
void
*
data
,
int
size
,
const
migraphx
::
onnx_options
&
options
)
parse_onnx_buffer
(
const
void
*
data
,
int
size
,
const
migraphx
::
onnx_options
&
options
)
{
{
return
program
(
return
program
(
make
<
migraphx_program
>
(
&
migraphx_parse_onnx_buffer
,
data
,
size
,
options
.
get_handle_ptr
()),
make
<
migraphx_program
>
(
&
migraphx_parse_onnx_buffer
,
data
,
size
,
options
.
get_handle_ptr
()),
...
...
src/argument.cpp
View file @
3272b22e
...
@@ -61,8 +61,8 @@ void argument::assign_buffer(std::function<char*()> d)
...
@@ -61,8 +61,8 @@ void argument::assign_buffer(std::function<char*()> d)
assert
(
offset
==
s
.
bytes
());
assert
(
offset
==
s
.
bytes
());
// cppcheck-suppress variableScope
// cppcheck-suppress variableScope
int
i
=
0
;
int
i
=
0
;
m_data
=
fix
<
data_t
>
([
&
](
auto
self
,
auto
ss
)
{
m_data
=
fix
<
data_t
>
([
&
](
auto
self
,
auto
ss
)
{
data_t
result
;
data_t
result
;
if
(
ss
.
sub_shapes
().
empty
())
if
(
ss
.
sub_shapes
().
empty
())
{
{
...
...
src/cpp_generator.cpp
View file @
3272b22e
...
@@ -86,7 +86,7 @@ cpp_generator::function& cpp_generator::function::set_generic_types(const module
...
@@ -86,7 +86,7 @@ cpp_generator::function& cpp_generator::function::set_generic_types(const module
struct
cpp_generator_impl
struct
cpp_generator_impl
{
{
std
::
stringstream
fs
{};
std
::
stringstream
fs
{};
int
function_count
=
0
;
int
function_count
=
0
;
std
::
function
<
std
::
string
(
std
::
string
)
>
fmap
=
nullptr
;
std
::
function
<
std
::
string
(
std
::
string
)
>
fmap
=
nullptr
;
std
::
function
<
std
::
string
(
shape
)
>
fresult
=
nullptr
;
std
::
function
<
std
::
string
(
shape
)
>
fresult
=
nullptr
;
std
::
unordered_map
<
std
::
string
,
std
::
string
>
point_op_map
=
{};
std
::
unordered_map
<
std
::
string
,
std
::
string
>
point_op_map
=
{};
...
...
src/dead_code_elimination.cpp
View file @
3272b22e
...
@@ -14,7 +14,7 @@ std::ptrdiff_t bidistance(const Range& r, Iterator start, Iterator last)
...
@@ -14,7 +14,7 @@ std::ptrdiff_t bidistance(const Range& r, Iterator start, Iterator last)
{
{
auto
start_forward
=
start
;
auto
start_forward
=
start
;
auto
start_backwards
=
start
;
auto
start_backwards
=
start
;
int
n
=
0
;
int
n
=
0
;
while
(
start_forward
!=
last
and
start_backwards
!=
last
)
while
(
start_forward
!=
last
and
start_backwards
!=
last
)
{
{
n
++
;
n
++
;
...
...
src/driver/main.cpp
View file @
3272b22e
...
@@ -37,7 +37,7 @@ struct loader
...
@@ -37,7 +37,7 @@ struct loader
std
::
string
model
;
std
::
string
model
;
std
::
string
file
;
std
::
string
file
;
std
::
string
file_type
;
std
::
string
file_type
;
int
batch
=
1
;
int
batch
=
1
;
bool
is_nhwc
=
true
;
bool
is_nhwc
=
true
;
unsigned
trim
=
0
;
unsigned
trim
=
0
;
bool
optimize
=
false
;
bool
optimize
=
false
;
...
...
src/include/migraphx/gemm.hpp
View file @
3272b22e
...
@@ -15,7 +15,7 @@ void gemm(tensor_view<T> cmat, tensor_view<T> amat, tensor_view<T> bmat, F alpha
...
@@ -15,7 +15,7 @@ void gemm(tensor_view<T> cmat, tensor_view<T> amat, tensor_view<T> bmat, F alpha
int
n_dims
=
cmat
.
get_shape
().
lens
().
size
();
int
n_dims
=
cmat
.
get_shape
().
lens
().
size
();
int
dim_0
=
n_dims
-
2
;
int
dim_0
=
n_dims
-
2
;
int
dim_1
=
n_dims
-
1
;
int
dim_1
=
n_dims
-
1
;
auto
k
=
amat
.
get_shape
().
lens
()[
dim_1
];
auto
k
=
amat
.
get_shape
().
lens
()[
dim_1
];
assert
(
amat
.
get_shape
().
lens
()[
dim_1
]
==
bmat
.
get_shape
().
lens
()[
dim_0
]);
assert
(
amat
.
get_shape
().
lens
()[
dim_1
]
==
bmat
.
get_shape
().
lens
()[
dim_0
]);
assert
(
cmat
.
get_shape
().
lens
()[
dim_0
]
==
amat
.
get_shape
().
lens
()[
dim_0
]);
assert
(
cmat
.
get_shape
().
lens
()[
dim_0
]
==
amat
.
get_shape
().
lens
()[
dim_0
]);
...
...
src/include/migraphx/load_save.hpp
View file @
3272b22e
...
@@ -15,8 +15,7 @@ struct file_options
...
@@ -15,8 +15,7 @@ struct file_options
program
load
(
const
std
::
string
&
filename
,
const
file_options
&
options
=
file_options
{});
program
load
(
const
std
::
string
&
filename
,
const
file_options
&
options
=
file_options
{});
program
load_buffer
(
const
std
::
vector
<
char
>&
buffer
,
const
file_options
&
options
=
file_options
{});
program
load_buffer
(
const
std
::
vector
<
char
>&
buffer
,
const
file_options
&
options
=
file_options
{});
program
program
load_buffer
(
const
char
*
buffer
,
int
size
,
const
file_options
&
options
=
file_options
{});
load_buffer
(
const
char
*
buffer
,
int
size
,
const
file_options
&
options
=
file_options
{});
void
save
(
const
program
&
p
,
void
save
(
const
program
&
p
,
const
std
::
string
&
filename
,
const
std
::
string
&
filename
,
...
...
src/include/migraphx/op/gather.hpp
View file @
3272b22e
...
@@ -61,7 +61,7 @@ struct gather
...
@@ -61,7 +61,7 @@ struct gather
{
{
argument
result
{
output_shape
};
argument
result
{
output_shape
};
// negative axis means counting dimensions from back
// negative axis means counting dimensions from back
auto
lens
=
args
[
0
].
get_shape
().
lens
();
auto
lens
=
args
[
0
].
get_shape
().
lens
();
int
axis_dim_size
=
lens
[
axis
];
int
axis_dim_size
=
lens
[
axis
];
// max dimension in axis
// max dimension in axis
visit_all
(
result
,
args
[
0
])([
&
](
auto
output
,
auto
data
)
{
visit_all
(
result
,
args
[
0
])([
&
](
auto
output
,
auto
data
)
{
...
...
src/include/migraphx/op/loop.hpp
View file @
3272b22e
...
@@ -83,9 +83,9 @@ struct loop
...
@@ -83,9 +83,9 @@ struct loop
const
auto
&
iter_stat
=
iter_state
.
at
(
i
);
const
auto
&
iter_stat
=
iter_state
.
at
(
i
);
const
auto
&
scan_out
=
concatenated_outputs
.
at
(
i
);
const
auto
&
scan_out
=
concatenated_outputs
.
at
(
i
);
auto
*
in_data
=
iter_stat
.
data
();
auto
*
in_data
=
iter_stat
.
data
();
auto
*
out_data
=
scan_out
.
data
();
auto
*
out_data
=
scan_out
.
data
();
int
out_size
=
iter_stat
.
get_shape
().
bytes
();
int
out_size
=
iter_stat
.
get_shape
().
bytes
();
assert
((
iter
+
1
)
*
out_size
<=
scan_out
.
get_shape
().
bytes
());
assert
((
iter
+
1
)
*
out_size
<=
scan_out
.
get_shape
().
bytes
());
std
::
copy
(
in_data
,
in_data
+
out_size
,
out_data
+
iter
*
out_size
);
std
::
copy
(
in_data
,
in_data
+
out_size
,
out_data
+
iter
*
out_size
);
}
}
...
...
src/include/migraphx/op/nonmaxsuppression.hpp
View file @
3272b22e
...
@@ -135,8 +135,8 @@ struct nonmaxsuppression
...
@@ -135,8 +135,8 @@ struct nonmaxsuppression
result
.
visit
([
&
](
auto
out
)
{
std
::
fill
(
out
.
begin
(),
out
.
end
(),
0
);
});
result
.
visit
([
&
](
auto
out
)
{
std
::
fill
(
out
.
begin
(),
out
.
end
(),
0
);
});
int
max_output_boxes_per_class
=
0
;
int
max_output_boxes_per_class
=
0
;
float
iou_threshold
=
0.0
f
;
float
iou_threshold
=
0.0
f
;
float
score_threshold
=
0.0
f
;
float
score_threshold
=
0.0
f
;
if
(
args
.
size
()
>
2
)
if
(
args
.
size
()
>
2
)
{
{
...
@@ -174,7 +174,7 @@ struct nonmaxsuppression
...
@@ -174,7 +174,7 @@ struct nonmaxsuppression
auto
bidx
=
idx
[
0
];
auto
bidx
=
idx
[
0
];
auto
cidx
=
idx
[
1
];
auto
cidx
=
idx
[
1
];
int
score_offset
=
(
bidx
*
class_num
+
cidx
)
*
box_num
;
int
score_offset
=
(
bidx
*
class_num
+
cidx
)
*
box_num
;
const
float
*
batch_boxes
=
boxes
+
bidx
*
box_num
*
4
;
const
float
*
batch_boxes
=
boxes
+
bidx
*
box_num
*
4
;
std
::
priority_queue
<
std
::
pair
<
float
,
int64_t
>>
sorted_boxes
;
std
::
priority_queue
<
std
::
pair
<
float
,
int64_t
>>
sorted_boxes
;
auto
insert_to_sorted_boxes
=
auto
insert_to_sorted_boxes
=
...
...
src/include/migraphx/op/pooling.hpp
View file @
3272b22e
...
@@ -57,7 +57,7 @@ struct pooling
...
@@ -57,7 +57,7 @@ struct pooling
const
shape
&
input
=
inputs
.
at
(
0
);
const
shape
&
input
=
inputs
.
at
(
0
);
auto
input_lens
=
input
.
lens
();
auto
input_lens
=
input
.
lens
();
int
kdims
=
input_lens
.
size
()
-
2
;
int
kdims
=
input_lens
.
size
()
-
2
;
auto
input_size
=
inputs
[
0
].
lens
().
size
();
auto
input_size
=
inputs
[
0
].
lens
().
size
();
auto
padding_size
=
padding
.
size
();
auto
padding_size
=
padding
.
size
();
if
(
not
(
input_size
==
padding_size
/
2
+
2
or
input_size
==
padding_size
+
2
))
if
(
not
(
input_size
==
padding_size
/
2
+
2
or
input_size
==
padding_size
+
2
))
...
...
src/include/migraphx/par_dfor.hpp
View file @
3272b22e
...
@@ -13,20 +13,17 @@ template <class... Ts>
...
@@ -13,20 +13,17 @@ template <class... Ts>
auto
par_dfor
(
Ts
...
xs
)
auto
par_dfor
(
Ts
...
xs
)
{
{
return
[
=
](
auto
f
)
{
return
[
=
](
auto
f
)
{
using
array_type
=
std
::
array
<
int
,
sizeof
...(
Ts
)
>
;
using
array_type
=
std
::
array
<
int
,
sizeof
...(
Ts
)
>
;
array_type
lens
=
{{
static_cast
<
int
>
(
xs
)...}};
array_type
lens
=
{{
static_cast
<
int
>
(
xs
)...}};
auto
n
=
std
::
accumulate
(
lens
.
begin
(),
lens
.
end
(),
1
,
std
::
multiplies
<
int
>
{});
auto
n
=
std
::
accumulate
(
lens
.
begin
(),
lens
.
end
(),
1
,
std
::
multiplies
<
int
>
{});
const
int
min_grain
=
8
;
const
int
min_grain
=
8
;
if
(
n
>
2
*
min_grain
)
if
(
n
>
2
*
min_grain
)
{
{
array_type
strides
;
array_type
strides
;
strides
.
fill
(
1
);
strides
.
fill
(
1
);
std
::
partial_sum
(
lens
.
rbegin
(),
std
::
partial_sum
(
lens
.
rend
()
-
1
,
lens
.
rbegin
(),
lens
.
rend
()
-
1
,
strides
.
rbegin
()
+
1
,
std
::
multiplies
<
int
>
());
strides
.
rbegin
()
+
1
,
auto
size
=
std
::
accumulate
(
lens
.
begin
(),
lens
.
end
(),
1
,
std
::
multiplies
<
int
>
());
std
::
multiplies
<
int
>
());
auto
size
=
std
::
accumulate
(
lens
.
begin
(),
lens
.
end
(),
1
,
std
::
multiplies
<
int
>
());
par_for
(
size
,
min_grain
,
[
&
](
int
i
)
{
par_for
(
size
,
min_grain
,
[
&
](
int
i
)
{
array_type
indices
;
array_type
indices
;
std
::
transform
(
strides
.
begin
(),
std
::
transform
(
strides
.
begin
(),
...
...
src/include/migraphx/program.hpp
View file @
3272b22e
...
@@ -67,8 +67,7 @@ struct program
...
@@ -67,8 +67,7 @@ struct program
void
finalize
();
void
finalize
();
void
void
perf_report
(
std
::
ostream
&
os
,
int
n
,
parameter_map
params
,
int
batch
=
1
)
const
;
perf_report
(
std
::
ostream
&
os
,
int
n
,
parameter_map
params
,
int
batch
=
1
)
const
;
void
mark
(
const
parameter_map
&
params
,
marker
&&
m
);
void
mark
(
const
parameter_map
&
params
,
marker
&&
m
);
...
...
src/include/migraphx/tf.hpp
View file @
3272b22e
...
@@ -10,11 +10,11 @@ inline namespace MIGRAPHX_INLINE_NS {
...
@@ -10,11 +10,11 @@ inline namespace MIGRAPHX_INLINE_NS {
/// struct to pass in tf options to parser
/// struct to pass in tf options to parser
struct
tf_options
struct
tf_options
{
{
bool
is_nhwc
=
false
;
bool
is_nhwc
=
false
;
int
batch_size
=
1
;
int
batch_size
=
1
;
/// Explicitly specify the dims of an input
/// Explicitly specify the dims of an input
std
::
unordered_map
<
std
::
string
,
std
::
vector
<
int
>>
map_input_dims
=
{};
std
::
unordered_map
<
std
::
string
,
std
::
vector
<
int
>>
map_input_dims
=
{};
std
::
vector
<
std
::
string
>
output_node_names
=
{};
std
::
vector
<
std
::
string
>
output_node_names
=
{};
};
};
/// Create a program from a tf pb file (default is nhwc format)
/// Create a program from a tf pb file (default is nhwc format)
...
...
src/onnx/parse_gru.cpp
View file @
3272b22e
...
@@ -20,12 +20,11 @@ struct parse_gru : op_parser<parse_gru>
...
@@ -20,12 +20,11 @@ struct parse_gru : op_parser<parse_gru>
std
::
vector
<
instruction_ref
>
args
)
const
std
::
vector
<
instruction_ref
>
args
)
const
{
{
migraphx
::
shape
input_shape
=
args
[
0
]
->
get_shape
();
migraphx
::
shape
input_shape
=
args
[
0
]
->
get_shape
();
int
hidden_size
=
args
[
2
]
->
get_shape
().
lens
()[
2
];
int
hidden_size
=
args
[
2
]
->
get_shape
().
lens
()[
2
];
if
(
contains
(
info
.
attributes
,
"hidden_size"
))
if
(
contains
(
info
.
attributes
,
"hidden_size"
))
{
{
int
hidden_size_att
=
int
hidden_size_att
=
parser
.
parse_value
(
info
.
attributes
.
at
(
"hidden_size"
)).
at
<
int
>
();
parser
.
parse_value
(
info
.
attributes
.
at
(
"hidden_size"
)).
at
<
int
>
();
if
(
hidden_size
!=
hidden_size_att
)
if
(
hidden_size
!=
hidden_size_att
)
{
{
MIGRAPHX_THROW
(
"GRU: hidden size mismatch in input and attribute"
);
MIGRAPHX_THROW
(
"GRU: hidden size mismatch in input and attribute"
);
...
...
src/onnx/parse_lstm.cpp
View file @
3272b22e
...
@@ -103,12 +103,11 @@ struct parse_lstm : op_parser<parse_lstm>
...
@@ -103,12 +103,11 @@ struct parse_lstm : op_parser<parse_lstm>
std
::
vector
<
instruction_ref
>
args
)
const
std
::
vector
<
instruction_ref
>
args
)
const
{
{
migraphx
::
shape
input_shape
=
args
[
0
]
->
get_shape
();
migraphx
::
shape
input_shape
=
args
[
0
]
->
get_shape
();
int
hidden_size
=
args
[
2
]
->
get_shape
().
lens
()[
2
];
int
hidden_size
=
args
[
2
]
->
get_shape
().
lens
()[
2
];
if
(
contains
(
info
.
attributes
,
"hidden_size"
))
if
(
contains
(
info
.
attributes
,
"hidden_size"
))
{
{
int
hidden_size_att
=
int
hidden_size_att
=
parser
.
parse_value
(
info
.
attributes
.
at
(
"hidden_size"
)).
at
<
int
>
();
parser
.
parse_value
(
info
.
attributes
.
at
(
"hidden_size"
)).
at
<
int
>
();
if
(
hidden_size
!=
hidden_size_att
)
if
(
hidden_size
!=
hidden_size_att
)
{
{
MIGRAPHX_THROW
(
"LSTM: hidden size mismatch in input and attribute"
);
MIGRAPHX_THROW
(
"LSTM: hidden size mismatch in input and attribute"
);
...
...
src/onnx/parse_resize.cpp
View file @
3272b22e
...
@@ -45,10 +45,7 @@ const auto& get_original_idx_op(const std::string& mode)
...
@@ -45,10 +45,7 @@ const auto& get_original_idx_op(const std::string& mode)
{
{
using
original_idx_op
=
std
::
function
<
double
(
int
,
int
,
int
,
double
)
>
;
using
original_idx_op
=
std
::
function
<
double
(
int
,
int
,
int
,
double
)
>
;
static
std
::
unordered_map
<
std
::
string
,
original_idx_op
>
const
idx_ops
=
{
static
std
::
unordered_map
<
std
::
string
,
original_idx_op
>
const
idx_ops
=
{
{
"half_pixel"
,
{
"half_pixel"
,
[
=
](
int
,
int
,
int
idx
,
double
scale
)
{
return
(
idx
+
0.5
)
/
scale
-
0.5
;
}},
[
=
](
int
,
int
,
int
idx
,
double
scale
)
{
return
(
idx
+
0.5
)
/
scale
-
0.5
;
}},
{
"pytorch_half_pixel"
,
{
"pytorch_half_pixel"
,
[
=
](
int
,
int
l_out
,
int
idx
,
double
scale
)
{
[
=
](
int
,
int
l_out
,
int
idx
,
double
scale
)
{
return
l_out
>
1
?
(
idx
+
0.5
)
/
scale
-
0.5
:
0.0
;
return
l_out
>
1
?
(
idx
+
0.5
)
/
scale
-
0.5
:
0.0
;
...
@@ -57,11 +54,9 @@ const auto& get_original_idx_op(const std::string& mode)
...
@@ -57,11 +54,9 @@ const auto& get_original_idx_op(const std::string& mode)
[
=
](
int
l_in
,
int
l_out
,
int
idx
,
double
)
{
[
=
](
int
l_in
,
int
l_out
,
int
idx
,
double
)
{
return
(
l_out
==
1
)
?
0.0
:
(
1.0
*
idx
*
(
l_in
-
1.0
)
/
(
l_out
-
1.0
));
return
(
l_out
==
1
)
?
0.0
:
(
1.0
*
idx
*
(
l_in
-
1.0
)
/
(
l_out
-
1.0
));
}},
}},
{
"asymmetric"
,
{
"asymmetric"
,
[
=
](
int
,
int
,
int
idx
,
double
scale
)
{
return
idx
/
scale
;
}},
[
=
](
int
,
int
,
int
idx
,
double
scale
)
{
return
idx
/
scale
;
}},
{
"tf_half_pixel_for_nn"
,
{
"tf_half_pixel_for_nn"
,
[
=
](
int
,
int
,
int
idx
,
double
scale
)
{
[
=
](
int
,
int
,
int
idx
,
double
scale
)
{
return
(
idx
+
0.5
)
/
scale
;
}}};
return
(
idx
+
0.5
)
/
scale
;
}}};
if
(
!
contains
(
idx_ops
,
mode
))
if
(
!
contains
(
idx_ops
,
mode
))
{
{
...
@@ -251,20 +246,19 @@ struct parse_resize : op_parser<parse_resize>
...
@@ -251,20 +246,19 @@ struct parse_resize : op_parser<parse_resize>
": ranks of input and scale are different!"
);
": ranks of input and scale are different!"
);
}
}
std
::
transform
(
in_lens
.
begin
(),
std
::
transform
(
in_lens
.
end
(),
in_lens
.
begin
(),
vec_scale
.
begin
(),
in_lens
.
end
(),
out_lens
.
begin
(),
vec_scale
.
begin
(),
[
&
](
auto
idx
,
auto
scale
)
{
out_lens
.
begin
(),
return
static_cast
<
int
>
(
idx
*
scale
);
[
&
](
auto
idx
,
auto
scale
)
{
return
static_cast
<
int
>
(
idx
*
scale
);
});
});
}
}
}
}
}
}
shape
out_s
{
in_s
.
type
(),
out_lens
};
shape
out_s
{
in_s
.
type
(),
out_lens
};
int
out_elements
=
out_s
.
elements
();
int
out_elements
=
out_s
.
elements
();
auto
idx_op
=
get_original_idx_op
(
coord_trans_mode
);
auto
idx_op
=
get_original_idx_op
(
coord_trans_mode
);
// reshape input to one-dimension
// reshape input to one-dimension
std
::
vector
<
int64_t
>
rsp_lens
=
{
static_cast
<
int64_t
>
(
in_s
.
elements
())};
std
::
vector
<
int64_t
>
rsp_lens
=
{
static_cast
<
int64_t
>
(
in_s
.
elements
())};
...
...
src/onnx/parse_rnn.cpp
View file @
3272b22e
...
@@ -20,12 +20,11 @@ struct parse_rnn : op_parser<parse_rnn>
...
@@ -20,12 +20,11 @@ struct parse_rnn : op_parser<parse_rnn>
std
::
vector
<
instruction_ref
>
args
)
const
std
::
vector
<
instruction_ref
>
args
)
const
{
{
migraphx
::
shape
input_shape
=
args
[
0
]
->
get_shape
();
migraphx
::
shape
input_shape
=
args
[
0
]
->
get_shape
();
int
hidden_size
=
args
[
1
]
->
get_shape
().
lens
()[
1
];
int
hidden_size
=
args
[
1
]
->
get_shape
().
lens
()[
1
];
if
(
contains
(
info
.
attributes
,
"hidden_size"
))
if
(
contains
(
info
.
attributes
,
"hidden_size"
))
{
{
int
hidden_size_att
=
int
hidden_size_att
=
parser
.
parse_value
(
info
.
attributes
.
at
(
"hidden_size"
)).
at
<
int
>
();
parser
.
parse_value
(
info
.
attributes
.
at
(
"hidden_size"
)).
at
<
int
>
();
if
(
hidden_size
!=
hidden_size_att
)
if
(
hidden_size
!=
hidden_size_att
)
{
{
MIGRAPHX_THROW
(
"RNN: hidden size mismatch in input and attribute"
);
MIGRAPHX_THROW
(
"RNN: hidden size mismatch in input and attribute"
);
...
...
src/opt/memory_coloring_impl.cpp
View file @
3272b22e
...
@@ -36,13 +36,13 @@ void memory_coloring_impl::run()
...
@@ -36,13 +36,13 @@ void memory_coloring_impl::run()
bool
memory_coloring_impl
::
allocate
(
interval_ptr
interval
)
bool
memory_coloring_impl
::
allocate
(
interval_ptr
interval
)
{
{
shape
s
=
interval
->
result
;
shape
s
=
interval
->
result
;
int
size
=
s
.
bytes
();
int
size
=
s
.
bytes
();
if
(
size
==
0
)
if
(
size
==
0
)
return
false
;
return
false
;
int
element_size
=
(
s
.
elements
()
==
0
?
4
:
(
size
/
s
.
elements
()));
int
element_size
=
(
s
.
elements
()
==
0
?
4
:
(
size
/
s
.
elements
()));
live_range
&
segment
=
interval
->
segment
;
live_range
&
segment
=
interval
->
segment
;
int
vn
=
segment
.
vn
;
int
vn
=
segment
.
vn
;
std
::
priority_queue
<
live_range
*
,
std
::
vector
<
live_range
*>
,
ordering
>
conflict_queue
;
std
::
priority_queue
<
live_range
*
,
std
::
vector
<
live_range
*>
,
ordering
>
conflict_queue
;
std
::
unordered_map
<
long
long
,
live_range
*>
offset2_live
;
std
::
unordered_map
<
long
long
,
live_range
*>
offset2_live
;
offset2_live
.
clear
();
offset2_live
.
clear
();
...
@@ -75,8 +75,8 @@ bool memory_coloring_impl::allocate(interval_ptr interval)
...
@@ -75,8 +75,8 @@ bool memory_coloring_impl::allocate(interval_ptr interval)
int
offset
=
0
;
int
offset
=
0
;
while
(
!
conflict_queue
.
empty
())
while
(
!
conflict_queue
.
empty
())
{
{
live_range
*
range
=
conflict_queue
.
top
();
live_range
*
range
=
conflict_queue
.
top
();
int
iter_offset
=
range
->
offset
;
int
iter_offset
=
range
->
offset
;
if
(
offset
>
iter_offset
)
if
(
offset
>
iter_offset
)
{
{
offset
=
std
::
max
(
offset
,
iter_offset
+
range
->
size
);
offset
=
std
::
max
(
offset
,
iter_offset
+
range
->
size
);
...
...
Prev
1
2
3
4
5
6
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