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
cd4ab535
Commit
cd4ab535
authored
Jun 20, 2023
by
Khalique Ahmed
Browse files
manual merge
parents
3891ee58
a0fa3742
Changes
279
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
697 additions
and
32 deletions
+697
-32
test/verify/test_add_conv_constant.cpp
test/verify/test_add_conv_constant.cpp
+45
-0
test/verify/test_concat_axis_2.cpp
test/verify/test_concat_axis_2.cpp
+6
-7
test/verify/test_dot_mul_a.cpp
test/verify/test_dot_mul_a.cpp
+50
-0
test/verify/test_dot_mul_b.cpp
test/verify/test_dot_mul_b.cpp
+50
-0
test/verify/test_instancenorm.cpp
test/verify/test_instancenorm.cpp
+97
-0
test/verify/test_literal_limits.cpp
test/verify/test_literal_limits.cpp
+54
-0
test/verify/test_min_max.cpp
test/verify/test_min_max.cpp
+52
-0
test/verify/test_mul_dot_a.cpp
test/verify/test_mul_dot_a.cpp
+49
-0
test/verify/test_mul_dot_b.cpp
test/verify/test_mul_dot_b.cpp
+49
-0
test/verify/test_quantizelinear_int32.cpp
test/verify/test_quantizelinear_int32.cpp
+7
-4
test/verify/test_reduce_mean_bias_half.cpp
test/verify/test_reduce_mean_bias_half.cpp
+48
-0
test/verify/test_softmax4.cpp
test/verify/test_softmax4.cpp
+41
-0
test/verify/test_split_single_dyn_dim.cpp
test/verify/test_split_single_dyn_dim.cpp
+49
-0
test/verify/verify_program.hpp
test/verify/verify_program.hpp
+21
-4
tools/accuracy/accuracy_checker.py
tools/accuracy/accuracy_checker.py
+41
-13
tools/api.py
tools/api.py
+5
-2
tools/api/api.cpp
tools/api/api.cpp
+19
-0
tools/build_and_test_onnxrt.sh
tools/build_and_test_onnxrt.sh
+12
-2
tools/download_models.sh
tools/download_models.sh
+2
-0
No files found.
test/verify/test_add_conv_constant.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_add_conv_constant
:
verify_program
<
test_add_conv_constant
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_type
,
{
1
,
3
,
32
,
32
}};
migraphx
::
shape
ws
{
migraphx
::
shape
::
float_type
,
{
4
,
3
,
3
,
3
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
c
=
mm
->
add_literal
(
migraphx
::
generate_literal
(
s
,
1
));
auto
w
=
mm
->
add_literal
(
migraphx
::
generate_literal
(
ws
,
2
));
auto
sum
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
c
,
x
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"convolution"
),
sum
,
w
);
return
p
;
}
};
test/verify/test_concat_axis_2.cpp
View file @
cd4ab535
...
...
@@ -33,13 +33,12 @@ struct test_concat_axis_2 : verify_program<test_concat_axis_2>
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s0
{
migraphx
::
shape
::
int32_type
,
{
3
,
2
,
1
}};
migraphx
::
shape
s1
{
migraphx
::
shape
::
int32_type
,
{
3
,
2
,
1
}};
migraphx
::
shape
s2
{
migraphx
::
shape
::
int32_type
,
{
3
,
2
,
1
}};
auto
l0
=
mm
->
add_parameter
(
"x"
,
s0
);
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
l2
=
mm
->
add_parameter
(
"z"
,
s2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"concat"
,
{{
"axis"
,
2
}}),
l0
,
l1
,
l2
);
migraphx
::
shape
s
{
migraphx
::
shape
::
int32_type
,
{
3
,
2
,
1
}};
auto
x0
=
mm
->
add_parameter
(
"x0"
,
s
);
auto
x1
=
mm
->
add_parameter
(
"x1"
,
s
);
auto
x2
=
mm
->
add_parameter
(
"x2"
,
s
);
auto
x3
=
mm
->
add_parameter
(
"x3"
,
s
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"concat"
,
{{
"axis"
,
2
}}),
x0
,
x1
,
x2
,
x3
);
return
p
;
}
};
test/verify/test_dot_mul_a.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/instruction.hpp>
struct
test_dot_mul_a
:
verify_program
<
test_dot_mul_a
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
as
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
32
}};
migraphx
::
shape
bs
{
migraphx
::
shape
::
float_type
,
{
2
,
32
,
128
}};
auto
a
=
mm
->
add_parameter
(
"input"
,
as
);
auto
b
=
mm
->
add_literal
(
migraphx
::
generate_literal
(
bs
));
auto
dot
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
a
,
b
);
auto
lit
=
mm
->
add_literal
(
migraphx
::
generate_literal
({
migraphx
::
shape
::
float_type
,
{
1
,
1
,
128
}}));
auto
litb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dot
->
get_shape
().
lens
()}}),
lit
);
auto
mul
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
dot
,
litb
);
mm
->
add_return
({
mul
});
return
p
;
}
};
test/verify/test_dot_mul_b.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/instruction.hpp>
struct
test_dot_mul_b
:
verify_program
<
test_dot_mul_b
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
as
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
32
}};
migraphx
::
shape
bs
{
migraphx
::
shape
::
float_type
,
{
2
,
32
,
128
}};
auto
a
=
mm
->
add_literal
(
migraphx
::
generate_literal
(
as
));
auto
b
=
mm
->
add_parameter
(
"input"
,
bs
);
auto
dot
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
a
,
b
);
auto
lit
=
mm
->
add_literal
(
migraphx
::
generate_literal
({
migraphx
::
shape
::
float_type
,
{
1
,
256
,
1
}}));
auto
litb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dot
->
get_shape
().
lens
()}}),
lit
);
auto
mul
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
dot
,
litb
);
mm
->
add_return
({
mul
});
return
p
;
}
};
test/verify/test_instancenorm.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/common.hpp>
#include <migraphx/make_op.hpp>
migraphx
::
instruction_ref
add_instancenorm
(
migraphx
::
module
&
m
,
migraphx
::
instruction_ref
x
,
const
std
::
vector
<
size_t
>&
dims
,
float
eps
=
1e-5
f
)
{
auto
mgx_type
=
x
->
get_shape
().
type
();
auto
x_lens
=
x
->
get_shape
().
lens
();
std
::
vector
<
size_t
>
axes
(
x_lens
.
size
()
-
2
);
std
::
iota
(
axes
.
begin
(),
axes
.
end
(),
2
);
auto
scale
=
m
.
add_parameter
(
"scale"
,
migraphx
::
shape
{
mgx_type
,
dims
});
auto
bias
=
m
.
add_parameter
(
"bias"
,
migraphx
::
shape
{
mgx_type
,
dims
});
auto
epsilon
=
m
.
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
mgx_type
},
{
eps
}});
auto
mean
=
m
.
add_instruction
(
migraphx
::
make_op
(
"reduce_mean"
,
{{
"axes"
,
axes
}}),
x
);
auto
mean_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
x_lens
}}),
mean
);
auto
sub
=
m
.
add_instruction
(
migraphx
::
make_op
(
"sub"
),
x
,
mean_mbcast
);
auto
l0
=
m
.
add_instruction
(
migraphx
::
make_op
(
"sqdiff"
),
{
x
,
mean_mbcast
});
auto
var
=
m
.
add_instruction
(
migraphx
::
make_op
(
"reduce_mean"
,
{{
"axes"
,
axes
}}),
{
l0
});
auto
epsilon_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
x_lens
}}),
epsilon
);
auto
var_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
x_lens
}}),
var
);
auto
add_epsilon
=
m
.
add_instruction
(
migraphx
::
make_op
(
"add"
),
var_mbcast
,
epsilon_mbcast
);
auto
rsqrt
=
m
.
add_instruction
(
migraphx
::
make_op
(
"rsqrt"
),
add_epsilon
);
auto
l1
=
m
.
add_instruction
(
migraphx
::
make_op
(
"mul"
),
{
sub
,
rsqrt
});
auto
scale_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
x_lens
}}),
scale
);
auto
mul
=
m
.
add_instruction
(
migraphx
::
make_op
(
"mul"
),
scale_mbcast
,
l1
);
auto
bias_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
x_lens
}}),
bias
);
return
m
.
add_instruction
(
migraphx
::
make_op
(
"add"
),
mul
,
bias_mbcast
);
}
template
<
migraphx
::
shape
::
type_t
TYPE
>
struct
test_instancenorm
:
verify_program
<
test_instancenorm
<
TYPE
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
std
::
vector
<
size_t
>
dims
=
{
1
,
2
,
5
,
5
};
auto
x
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
TYPE
,
dims
});
add_instancenorm
(
*
mm
,
x
,
{
1
,
2
,
1
,
1
});
return
p
;
}
};
template
struct
test_instancenorm
<
migraphx
::
shape
::
float_type
>;
template
struct
test_instancenorm
<
migraphx
::
shape
::
half_type
>;
template
<
migraphx
::
shape
::
type_t
TYPE
>
struct
test_instancenorm_large_3d
:
verify_program
<
test_instancenorm_large_3d
<
TYPE
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
std
::
vector
<
size_t
>
dims
=
{
1
,
32
,
64
,
64
,
64
};
auto
x
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
TYPE
,
dims
});
add_instancenorm
(
*
mm
,
x
,
{
1
,
32
,
1
,
1
,
1
});
return
p
;
}
};
template
struct
test_instancenorm_large_3d
<
migraphx
::
shape
::
float_type
>;
template
struct
test_instancenorm_large_3d
<
migraphx
::
shape
::
half_type
>;
test/verify/test_literal_limits.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2023 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/make_op.hpp>
#include <limits>
template
<
migraphx
::
shape
::
type_t
Q
,
typename
T
>
struct
test_literal_limits
:
verify_program
<
test_literal_limits
<
Q
,
T
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
input_s
=
migraphx
::
shape
(
Q
,
{
3
,
1
});
auto
infinity_val
=
std
::
numeric_limits
<
T
>::
infinity
();
std
::
vector
<
T
>
s_data
{
infinity_val
,
static_cast
<
T
>
(
-
infinity_val
),
std
::
numeric_limits
<
T
>::
quiet_NaN
()};
auto
input_param
=
mm
->
add_parameter
(
"test_input"
,
input_s
);
auto
input
=
mm
->
add_literal
(
migraphx
::
literal
{
input_s
,
s_data
});
auto
o1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
input
,
input_param
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"isnan"
),
o1
);
return
p
;
}
};
template
struct
test_literal_limits
<
migraphx
::
shape
::
float_type
,
float
>;
template
struct
test_literal_limits
<
migraphx
::
shape
::
double_type
,
double
>;
template
struct
test_literal_limits
<
migraphx
::
shape
::
half_type
,
migraphx
::
half
>;
template
struct
test_literal_limits
<
migraphx
::
shape
::
int32_type
,
int32_t
>;
template
struct
test_literal_limits
<
migraphx
::
shape
::
int8_type
,
int8_t
>;
test/verify/test_min_max.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/op/max.hpp>
#include <migraphx/op/min.hpp>
template
<
class
Op
,
migraphx
::
shape
::
type_t
T
>
struct
test_min_max
:
verify_program
<
test_min_max
<
Op
,
T
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
T
,
{
128
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
y
=
mm
->
add_parameter
(
"y"
,
s
);
mm
->
add_instruction
(
Op
{},
x
,
y
);
return
p
;
}
};
template
struct
test_min_max
<
migraphx
::
op
::
max
,
migraphx
::
shape
::
float_type
>;
template
struct
test_min_max
<
migraphx
::
op
::
max
,
migraphx
::
shape
::
half_type
>;
template
struct
test_min_max
<
migraphx
::
op
::
max
,
migraphx
::
shape
::
double_type
>;
template
struct
test_min_max
<
migraphx
::
op
::
min
,
migraphx
::
shape
::
float_type
>;
template
struct
test_min_max
<
migraphx
::
op
::
min
,
migraphx
::
shape
::
half_type
>;
template
struct
test_min_max
<
migraphx
::
op
::
min
,
migraphx
::
shape
::
double_type
>;
test/verify/test_mul_dot_a.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_mul_dot_a
:
verify_program
<
test_mul_dot_a
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
as
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
32
}};
migraphx
::
shape
bs
{
migraphx
::
shape
::
float_type
,
{
2
,
32
,
128
}};
auto
a
=
mm
->
add_parameter
(
"input"
,
as
);
auto
lit
=
mm
->
add_literal
(
migraphx
::
generate_literal
({
migraphx
::
shape
::
float_type
,
{
1
,
1
,
32
}}));
auto
litb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
as
.
lens
()}}),
lit
);
auto
mul
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
a
,
litb
);
auto
b
=
mm
->
add_literal
(
migraphx
::
generate_literal
(
bs
));
auto
dot
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
mul
,
b
);
mm
->
add_return
({
dot
});
return
p
;
}
};
test/verify/test_mul_dot_b.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_mul_dot_b
:
verify_program
<
test_mul_dot_b
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
as
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
32
}};
migraphx
::
shape
bs
{
migraphx
::
shape
::
float_type
,
{
2
,
32
,
128
}};
auto
b
=
mm
->
add_parameter
(
"input"
,
bs
);
auto
lit
=
mm
->
add_literal
(
migraphx
::
generate_literal
({
migraphx
::
shape
::
float_type
,
{
1
,
32
,
1
}}));
auto
litb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
bs
.
lens
()}}),
lit
);
auto
mul
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
b
,
litb
);
auto
a
=
mm
->
add_literal
(
migraphx
::
generate_literal
(
as
));
auto
dot
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
a
,
mul
);
mm
->
add_return
({
dot
});
return
p
;
}
};
test/verify/test_quantizelinear_int32.cpp
View file @
cd4ab535
...
...
@@ -37,10 +37,13 @@ struct test_quantizelinear_int32 : verify_program<test_quantizelinear_int32>
migraphx
::
shape
sx
{
migraphx
::
shape
::
int32_type
,
{
2
,
2
,
2
}};
migraphx
::
shape
ss
{
migraphx
::
shape
::
float_type
,
{
2
,
2
,
2
}};
migraphx
::
shape
sz
{
migraphx
::
shape
::
int8_type
,
{
2
,
2
,
2
}};
auto
input1
=
mm
->
add_parameter
(
"x"
,
sx
);
auto
input2
=
mm
->
add_parameter
(
"y_scale"
,
ss
);
auto
input3
=
mm
->
add_parameter
(
"y_zero_point"
,
sz
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"quantizelinear"
),
input1
,
input2
,
input3
);
auto
input1
=
mm
->
add_parameter
(
"x"
,
sx
);
auto
input2
=
mm
->
add_parameter
(
"y_scale"
,
ss
);
auto
input3
=
mm
->
add_parameter
(
"y_zero_point"
,
sz
);
auto
input1_float
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"convert"
,
{{
"target_type"
,
migraphx
::
shape
::
float_type
}}),
input1
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"quantizelinear"
),
input1_float
,
input2
,
input3
);
mm
->
add_return
({
r
});
return
p
;
};
...
...
test/verify/test_reduce_mean_bias_half.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/instruction.hpp>
struct
test_reduce_mean_bias_half
:
verify_program
<
test_reduce_mean_bias_half
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
half_type
,
{
1
,
32
,
128
}};
migraphx
::
shape
bs
{
migraphx
::
shape
::
half_type
,
{
1
,
32
,
128
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
reduce
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"reduce_mean"
,
{{
"axes"
,
{
2
}}}),
x
);
auto
bias
=
mm
->
add_parameter
(
"bias"
,
reduce
->
get_shape
());
auto
add
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
reduce
,
bias
);
auto
abs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"abs"
),
add
);
auto
sqrt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"sqrt"
),
abs
);
mm
->
add_return
({
sqrt
});
return
p
;
};
};
test/verify/test_softmax4.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2022 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_softmax4
:
verify_program
<
test_softmax4
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
x
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
migraphx
::
shape
::
half_type
,
{
1
,
12
,
384
,
384
}});
mm
->
add_instruction
(
migraphx
::
make_op
(
"softmax"
,
{{
"axis"
,
3
}}),
x
);
return
p
;
}
};
test/verify/test_split_single_dyn_dim.cpp
0 → 100644
View file @
cd4ab535
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2023 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "verify_program.hpp"
#include <migraphx/pass_manager.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
/**
* Test that the split_single_dyn_dim GPU compiler pass produces the same results as ref.
*/
struct
test_split_single_dyn_dim
:
verify_program
<
test_split_single_dyn_dim
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
lit_s
{
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
}}};
auto
literal_ins
=
mm
->
add_literal
(
migraphx
::
literal
{
lit_s
,
{
6
}});
migraphx
::
shape
s
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
4
,
4
}}};
auto
input
=
mm
->
add_parameter
(
"data"
,
s
);
auto
broadcast_lit
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
),
literal_ins
,
input
);
auto
add_ins
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
input
,
broadcast_lit
);
mm
->
add_return
({
add_ins
});
return
p
;
}
};
test/verify/verify_program.hpp
View file @
cd4ab535
...
...
@@ -24,15 +24,19 @@
#ifndef MIGRAPHX_GUARD_AUTO_REGISTER_VERIFY_PROGRAM_HPP
#define MIGRAPHX_GUARD_AUTO_REGISTER_VERIFY_PROGRAM_HPP
#include <functional>
#include <migraphx/auto_register.hpp>
#include <migraphx/program.hpp>
#include <functional>
#include <migraphx/stringutils.hpp>
#include <migraphx/compile_options.hpp>
#include <migraphx/ranges.hpp>
struct
program_info
{
std
::
string
name
;
std
::
string
section
;
std
::
function
<
migraphx
::
program
()
>
get_program
;
migraphx
::
compile_options
compile_options
;
};
void
register_program_info
(
const
program_info
&
pi
);
...
...
@@ -45,9 +49,21 @@ struct register_verify_program_action
{
T
x
;
program_info
pi
;
pi
.
name
=
migraphx
::
get_type_name
<
T
>
();
pi
.
section
=
x
.
section
();
pi
.
get_program
=
[
x
]
{
return
x
.
create_program
();
};
const
std
::
string
&
test_type_name
=
migraphx
::
get_type_name
<
T
>
();
const
auto
&
split_name
=
migraphx
::
split_string
(
test_type_name
,
':'
);
std
::
vector
<
std
::
string
>
name_without_version
=
{};
// test_type_name could contain internal namespace name with version_x_y_z i.e.
// test_instancenorm<migraphx::version_1::shape::float_type> remove version and construct
// test_name such as test_instancenorm<migraphx::shape::float_type>
std
::
copy_if
(
split_name
.
begin
(),
split_name
.
end
(),
std
::
back_inserter
(
name_without_version
),
[
&
](
const
auto
&
i
)
{
return
not
i
.
empty
()
and
not
migraphx
::
contains
(
i
,
"version"
);
});
pi
.
name
=
migraphx
::
trim
(
migraphx
::
join_strings
(
name_without_version
,
"::"
));
pi
.
section
=
x
.
section
();
pi
.
get_program
=
[
x
]
{
return
x
.
create_program
();
};
pi
.
compile_options
=
x
.
get_compile_options
();
register_program_info
(
pi
);
}
};
...
...
@@ -59,6 +75,7 @@ template <class T>
struct
verify_program
:
auto_register_verify_program
<
T
>
{
std
::
string
section
()
const
{
return
"general"
;
};
migraphx
::
compile_options
get_compile_options
()
const
{
return
migraphx
::
compile_options
{};
};
};
#endif
tools/accuracy/accuracy_checker.py
View file @
cd4ab535
...
...
@@ -63,8 +63,25 @@ def parse_args():
type
=
str
,
action
=
'append'
,
help
=
'specify input parameter dimension
\
with the following format --input
_
dim input_name:dim0,dim1,dim2...'
with the following format --input
-
dim input_name:dim0,dim1,dim2...'
)
parser
.
add_argument
(
'--target'
,
type
=
str
,
default
=
'gpu'
,
help
=
'target to compile and run MIGraphX on'
)
parser
.
add_argument
(
'--ort-run'
,
dest
=
"ort_run"
,
action
=
'store_true'
,
default
=
False
,
help
=
'only perform an onnxruntime run'
)
parser
.
add_argument
(
'--ort-logging'
,
dest
=
"ort_logging"
,
action
=
'store_true'
,
default
=
False
,
help
=
'Turn on ort VERBOSE logging via session options'
)
args
=
parser
.
parse_args
()
return
args
...
...
@@ -111,7 +128,7 @@ def get_np_datatype(in_type):
'uint16_type'
:
np
.
uint16
,
'int8_type'
:
np
.
int8
,
'uint8_type'
:
np
.
uint8
,
'bool_type'
:
np
.
bool
_
'bool_type'
:
bool
}
return
datatypes
[
in_type
]
...
...
@@ -159,7 +176,8 @@ def main():
if
args
.
verbose
:
print
(
model
)
model
.
compile
(
migraphx
.
get_target
(
'gpu'
))
if
not
args
.
ort_run
:
model
.
compile
(
migraphx
.
get_target
(
args
.
target
))
params
=
{}
test_inputs
=
{}
...
...
@@ -178,10 +196,19 @@ def main():
test_inputs
[
name
]
=
test_input
params
[
name
]
=
migraphx
.
argument
(
test_input
)
pred_migx
=
np
.
array
(
model
.
run
(
params
)[
-
1
])
if
not
args
.
ort_run
:
pred_migx
=
np
.
array
(
model
.
run
(
params
)[
-
1
])
if
use_onnx
:
sess
=
ort
.
InferenceSession
(
model_name
,
providers
=
[
args
.
provider
])
sess_op
=
ort
.
SessionOptions
()
if
args
.
ort_logging
:
sess_op
.
log_verbosity_level
=
0
sess_op
.
log_severity_level
=
0
sess
=
ort
.
InferenceSession
(
model_name
,
sess_options
=
sess_op
,
providers
=
[
args
.
provider
])
ort_params
=
{}
for
input
in
sess
.
get_inputs
():
...
...
@@ -239,14 +266,15 @@ def main():
y_out
=
sess
.
run
(
y
,
feed_dict
=
tf_dict
)
pred_fw
=
y_out
is_correct
=
check_correctness
(
pred_fw
,
pred_migx
,
args
.
tolerance
,
args
.
tolerance
,
args
.
verbose
)
verbose_string
=
' Rerun with --verbose for detailed information.'
\
if
not
args
.
verbose
else
''
if
is_correct
:
print
(
'PASSED: MIGraphX meets tolerance'
)
else
:
print
(
'FAILED: MIGraphX is not within tolerance.'
+
verbose_string
)
if
not
args
.
ort_run
:
is_correct
=
check_correctness
(
pred_fw
,
pred_migx
,
args
.
tolerance
,
args
.
tolerance
,
args
.
verbose
)
verbose_string
=
' Rerun with --verbose for detailed information.'
\
if
not
args
.
verbose
else
''
if
is_correct
:
print
(
'PASSED: MIGraphX meets tolerance'
)
else
:
print
(
'FAILED: MIGraphX is not within tolerance.'
+
verbose_string
)
if
__name__
==
'__main__'
:
...
...
tools/api.py
View file @
cd4ab535
...
...
@@ -764,10 +764,13 @@ const Target* object_cast(const U* x)
return reinterpret_cast<const Target*>(x);
}
template<class T, class... Ts, class Target
=
std::remove_pointer_t<T>>
template
<class T, class... Ts, class Target
=
std::remove_pointer_t<T>>
Target* allocate(Ts&&... xs)
{
return new Target(std::forward<Ts>(xs)...); // NOLINT
if constexpr(std::is_aggregate<Target>{})
return new Target{std::forward<Ts>(xs)...}; // NOLINT
else
return new Target(std::forward<Ts>(xs)...); // NOLINT
}
template<class T>
...
...
tools/api/api.cpp
View file @
cd4ab535
...
...
@@ -24,6 +24,7 @@
#include <migraphx/execution_environment.hpp>
#include <migraphx/migraphx.h>
#include <migraphx/rank.hpp>
#include <migraphx/ranges.hpp>
#include <migraphx/shape.hpp>
#include <migraphx/program.hpp>
#include <migraphx/onnx.hpp>
...
...
@@ -145,6 +146,11 @@ void set_default_dim_value(onnx_options& options, size_t value)
options
.
default_dim_value
=
value
;
}
void
set_default_dyn_dim_value
(
onnx_options
&
options
,
const
shape
::
dynamic_dimension
&
dd
)
{
options
.
default_dyn_dim_value
=
dd
;
}
void
set_default_loop_iterations
(
onnx_options
&
options
,
int64_t
value
)
{
options
.
max_loop_iterations
=
value
;
...
...
@@ -161,6 +167,13 @@ void set_input_parameter_shape(onnx_options& options,
options
.
map_input_dims
[
std
::
string
(
name
)]
=
std
::
move
(
dims
);
}
void
set_dyn_input_parameter_shape
(
onnx_options
&
options
,
const
char
*
name
,
std
::
vector
<
shape
::
dynamic_dimension
>
dyn_dims
)
{
options
.
map_dyn_input_dims
[
std
::
string
(
name
)]
=
std
::
move
(
dyn_dims
);
}
void
set_input_parameter_shape
(
tf_options
&
options
,
const
char
*
name
,
std
::
vector
<
std
::
size_t
>
dims
)
{
options
.
map_input_dims
[
std
::
string
(
name
)]
=
std
::
move
(
dims
);
...
...
@@ -187,6 +200,12 @@ std::vector<const char*> get_names(const std::unordered_map<std::string, Value>&
return
result
;
}
template
<
class
T
>
std
::
set
<
T
>
make_set
(
const
T
*
x
,
std
::
size_t
n
)
{
return
{
x
,
x
+
n
};
}
void
quantize_fp16_with_op_names
(
program
&
prog
,
std
::
vector
<
std
::
string
>&
names
)
{
if
(
names
.
empty
())
...
...
tools/build_and_test_onnxrt.sh
View file @
cd4ab535
...
...
@@ -21,13 +21,23 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#####################################################################################
set
-e
ulimit
-c
unlimited
cd
/onnxruntime
pip3
install
-r
requirements-dev.txt
# Add newer cmake to the path
export
PATH
=
"/opt/cmake/bin:
$PATH
"
export
CXXFLAGS
=
"-D__HIP_PLATFORM_AMD__=1 -w"
./build.sh
--config
Release
--cmake_extra_defines
CMAKE_HIP_COMPILER
=
/opt/rocm/llvm/bin/clang++
--update
--build
--parallel
--cmake_extra_defines
ONNXRUNTIME_VERSION
=
$(
cat
./VERSION_NUMBER
)
--skip_tests
--rocm_home
/opt/rocm
--use_migraphx
--migraphx_home
/opt/rocm
--rocm_version
=
`
cat
/opt/rocm/.info/version-dev
`
./build.sh
--config
Release
--cmake_extra_defines
CMAKE_HIP_COMPILER
=
/opt/rocm/llvm/bin/clang++
--update
--build
--parallel
--cmake_extra_defines
ONNXRUNTIME_VERSION
=
$(
cat
./VERSION_NUMBER
)
--skip_tests
--rocm_home
/opt/rocm
--use_migraphx
--migraphx_home
/opt/rocm
--rocm_version
=
`
cat
/opt/rocm/.info/version-dev
`
--allow_running_as_root
cd
build/Linux/Release
#Add test launcher for onnxrt tests
../../../tools/ci_build/github/pai/migraphx_test_launcher.sh
echo
'InferenceSessionTests.CheckRunProfilerWithSessionOptions'
>>
../../../tools/ci_build/github/pai/migraphx-excluded-tests.txt
echo
'InferenceSessionTests.CheckRunProfilerWithSessionOptions2'
>>
../../../tools/ci_build/github/pai/migraphx-excluded-tests.txt
echo
'InferenceSessionTests.Test3LayerNestedSubgraph'
>>
../../../tools/ci_build/github/pai/migraphx-excluded-tests.txt
echo
'InferenceSessionTests.Test2LayerNestedSubgraph'
>>
../../../tools/ci_build/github/pai/migraphx-excluded-tests.txt
../../../tools/ci_build/github/pai/migraphx_test_launcher.sh
||
(
gdb ./onnxruntime_test_all core
-batch
-ex
bt
&&
exit
1
)
tools/download_models.sh
View file @
cd4ab535
...
...
@@ -24,6 +24,8 @@
# THE SOFTWARE.
#####################################################################################
set
-e
if
[
-z
"
$ONNX_HOME
"
]
then
# The onnx library uses ONNX_HOME, by default if it doesn't exist
...
...
Prev
1
…
10
11
12
13
14
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