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
dc8edad8
Unverified
Commit
dc8edad8
authored
Dec 03, 2023
by
Chris Austen
Committed by
GitHub
Dec 03, 2023
Browse files
Merge branch 'develop' into check-mlir-perf
parents
b9cbfd8e
32f0b028
Changes
88
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
188 additions
and
54 deletions
+188
-54
test/verify/test_floor.cpp
test/verify/test_floor.cpp
+7
-2
test/verify/test_fmod_mod.cpp
test/verify/test_fmod_mod.cpp
+21
-9
test/verify/test_gather.cpp
test/verify/test_gather.cpp
+9
-5
test/verify/test_gathernd_default.cpp
test/verify/test_gathernd_default.cpp
+7
-2
test/verify/test_isnan.cpp
test/verify/test_isnan.cpp
+6
-1
test/verify/test_layernorm.cpp
test/verify/test_layernorm.cpp
+13
-0
test/verify/test_literal_limits.cpp
test/verify/test_literal_limits.cpp
+9
-3
test/verify/test_log.cpp
test/verify/test_log.cpp
+7
-2
test/verify/test_min_max.cpp
test/verify/test_min_max.cpp
+2
-0
test/verify/test_nearbyint.cpp
test/verify/test_nearbyint.cpp
+2
-0
test/verify/test_pad.cpp
test/verify/test_pad.cpp
+8
-2
test/verify/test_pow.cpp
test/verify/test_pow.cpp
+8
-3
test/verify/test_reduce_add.cpp
test/verify/test_reduce_add.cpp
+7
-2
test/verify/test_reduce_mean_nhwc.cpp
test/verify/test_reduce_mean_nhwc.cpp
+8
-4
test/verify/test_reduce_op_large.cpp
test/verify/test_reduce_op_large.cpp
+16
-0
test/verify/test_reduce_op_small.cpp
test/verify/test_reduce_op_small.cpp
+16
-0
test/verify/test_roialign.cpp
test/verify/test_roialign.cpp
+12
-7
test/verify/test_rsqrt.cpp
test/verify/test_rsqrt.cpp
+14
-6
test/verify/test_scatternd.cpp
test/verify/test_scatternd.cpp
+9
-4
test/verify/test_sin.cpp
test/verify/test_sin.cpp
+7
-2
No files found.
test/verify/test_floor.cpp
View file @
dc8edad8
...
...
@@ -27,16 +27,21 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_floor
:
verify_program
<
test_floor
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_floor
:
verify_program
<
test_floor
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
2
,
3
,
4
,
6
}};
migraphx
::
shape
s
{
DT
ype
,
{
2
,
3
,
4
,
6
}};
auto
param
=
mm
->
add_parameter
(
"x"
,
s
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"floor"
),
param
);
return
p
;
};
};
template
struct
test_floor
<
migraphx
::
shape
::
float_type
>;
template
struct
test_floor
<
migraphx
::
shape
::
half_type
>;
template
struct
test_floor
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_fmod_mod.cpp
View file @
dc8edad8
...
...
@@ -34,40 +34,52 @@
Adding this because HIP fmod sign changes when y = 0 resulting in nan and -nan not beign
consistent between ref and gpu implementations.
*/
migraphx
::
instruction_ref
add_epsilon
(
migraphx
::
module
&
m
,
migraphx
::
instruction_ref
y
)
migraphx
::
instruction_ref
add_epsilon
(
migraphx
::
module
&
m
,
migraphx
::
instruction_ref
y
,
migraphx
::
shape
::
type_t
dtype
=
migraphx
::
shape
::
float_type
)
{
auto
zero
=
m
.
add_literal
(
0.0
f
);
auto
eps
=
m
.
add_literal
(
1e-3
f
);
auto
zero
=
m
.
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
dtype
},
{
0.0
f
}}
);
auto
eps
=
m
.
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
dtype
},
{
1e-3
f
}}
);
auto
op_y
=
add_common_op
(
m
,
migraphx
::
make_op
(
"equal"
),
{
y
,
zero
});
return
add_common_op
(
m
,
migraphx
::
make_op
(
"where"
),
{
op_y
,
eps
,
y
});
}
struct
test_fmod
:
verify_program
<
test_fmod
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_fmod
:
verify_program
<
test_fmod
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
64
}};
migraphx
::
shape
s
{
DT
ype
,
{
64
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
y
=
mm
->
add_parameter
(
"y"
,
s
);
auto
op_where
=
add_epsilon
(
*
mm
,
y
);
auto
op_where
=
add_epsilon
(
*
mm
,
y
,
DType
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"fmod"
),
x
,
op_where
);
return
p
;
}
};
template
struct
test_fmod
<
migraphx
::
shape
::
float_type
>;
template
struct
test_fmod
<
migraphx
::
shape
::
half_type
>;
template
struct
test_fmod
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
struct
test_mod
:
verify_program
<
test_mod
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_mod
:
verify_program
<
test_mod
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
64
}};
migraphx
::
shape
s
{
DT
ype
,
{
64
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
y
=
mm
->
add_parameter
(
"y"
,
s
);
auto
op_where
=
add_epsilon
(
*
mm
,
y
);
auto
op_where
=
add_epsilon
(
*
mm
,
y
,
DType
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"mod"
),
x
,
op_where
);
return
p
;
}
};
template
struct
test_mod
<
migraphx
::
shape
::
float_type
>;
// TODO: Fix half type test
// template struct test_mod<migraphx::shape::half_type>;
template
struct
test_mod
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_gather.cpp
View file @
dc8edad8
...
...
@@ -27,14 +27,14 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
template
<
int
Axis
>
struct
test_gather
:
verify_program
<
test_gather
<
Axis
>>
template
<
int
Axis
,
migraphx
::
shape
::
type_t
DType
>
struct
test_gather
:
verify_program
<
test_gather
<
Axis
,
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
3
,
3
}};
migraphx
::
shape
s
{
DT
ype
,
{
3
,
3
}};
migraphx
::
shape
s_indices
{
migraphx
::
shape
::
int32_type
,
{
2
,
2
}};
std
::
vector
<
int
>
indices
{
1
,
2
,
2
,
1
};
auto
a0
=
mm
->
add_parameter
(
"data"
,
s
);
...
...
@@ -46,6 +46,10 @@ struct test_gather : verify_program<test_gather<Axis>>
};
// Standard gather test
template
struct
test_gather
<
0
>;
template
struct
test_gather
<
0
,
migraphx
::
shape
::
float_type
>;
template
struct
test_gather
<
0
,
migraphx
::
shape
::
half_type
>;
template
struct
test_gather
<
0
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
// Test Negative axis
template
struct
test_gather
<-
2
>;
template
struct
test_gather
<-
2
,
migraphx
::
shape
::
float_type
>;
template
struct
test_gather
<-
2
,
migraphx
::
shape
::
half_type
>;
template
struct
test_gather
<-
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_gathernd_default.cpp
View file @
dc8edad8
...
...
@@ -26,13 +26,14 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_gathernd_default
:
verify_program
<
test_gathernd_default
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_gathernd_default
:
verify_program
<
test_gathernd_default
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
ds
{
migraphx
::
shape
::
float_t
ype
,
{
2
,
2
}};
migraphx
::
shape
ds
{
DT
ype
,
{
2
,
2
}};
migraphx
::
shape
is
{
migraphx
::
shape
::
int64_type
,
{
2
,
2
}};
std
::
vector
<
int64_t
>
indices
{
0
,
0
,
1
,
1
};
auto
a0
=
mm
->
add_parameter
(
"data"
,
ds
);
...
...
@@ -41,3 +42,7 @@ struct test_gathernd_default : verify_program<test_gathernd_default>
return
p
;
}
};
template
struct
test_gathernd_default
<
migraphx
::
shape
::
float_type
>;
template
struct
test_gathernd_default
<
migraphx
::
shape
::
half_type
>;
template
struct
test_gathernd_default
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_isnan
_float
.cpp
→
test/verify/test_isnan.cpp
View file @
dc8edad8
...
...
@@ -27,7 +27,8 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_isnan_float
:
verify_program
<
test_isnan_float
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_isnan
:
verify_program
<
test_isnan
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
...
...
@@ -40,3 +41,7 @@ struct test_isnan_float : verify_program<test_isnan_float>
return
p
;
}
};
template
struct
test_isnan
<
migraphx
::
shape
::
float_type
>;
template
struct
test_isnan
<
migraphx
::
shape
::
half_type
>;
template
struct
test_isnan
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_layernorm.cpp
View file @
dc8edad8
...
...
@@ -117,6 +117,19 @@ struct test_layernorm_fp16 : verify_program<test_layernorm_fp16>
}
};
struct
test_layernorm_fp8
:
verify_program
<
test_layernorm_fp8
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
std
::
vector
<
size_t
>
dims
=
{
1
,
24
,
64
};
auto
x
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
migraphx
::
shape
::
fp8e4m3fnuz_type
,
dims
});
add_layernorm
(
*
mm
,
x
,
dims
);
return
p
;
}
};
struct
test_layernorm_eps
:
verify_program
<
test_layernorm_eps
>
{
migraphx
::
program
create_program
()
const
...
...
test/verify/test_literal_limits.cpp
View file @
dc8edad8
...
...
@@ -26,6 +26,7 @@
#include <migraphx/program.hpp>
#include <migraphx/make_op.hpp>
#include <limits>
#include <type_traits>
template
<
migraphx
::
shape
::
type_t
Q
,
typename
T
>
struct
test_literal_limits
:
verify_program
<
test_literal_limits
<
Q
,
T
>>
...
...
@@ -33,9 +34,13 @@ 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
();
auto
*
mm
=
p
.
get_main_module
();
auto
input_s
=
migraphx
::
shape
(
Q
,
{
3
,
1
});
T
infinity_val
{
0
};
if
constexpr
(
std
::
numeric_limits
<
T
>::
has_infinity
and
std
::
is_floating_point
<
T
>
{})
{
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
()};
...
...
@@ -52,3 +57,4 @@ 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
>;
template
struct
test_literal_limits
<
migraphx
::
shape
::
fp8e4m3fnuz_type
,
migraphx
::
fp8
::
fp8e4m3fnuz
>;
test/verify/test_log.cpp
View file @
dc8edad8
...
...
@@ -27,15 +27,20 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_log
:
verify_program
<
test_log
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_log
:
verify_program
<
test_log
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
6
}};
migraphx
::
shape
s
{
DT
ype
,
{
6
}};
auto
x
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"abs"
),
mm
->
add_parameter
(
"x"
,
s
));
mm
->
add_instruction
(
migraphx
::
make_op
(
"log"
),
x
);
return
p
;
}
};
template
struct
test_log
<
migraphx
::
shape
::
float_type
>;
template
struct
test_log
<
migraphx
::
shape
::
half_type
>;
template
struct
test_log
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_min_max.cpp
View file @
dc8edad8
...
...
@@ -46,7 +46,9 @@ struct test_min_max : verify_program<test_min_max<Op, T>>
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
::
max
,
migraphx
::
shape
::
fp8e4m3fnuz_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
>;
template
struct
test_min_max
<
migraphx
::
op
::
min
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_nearbyint.cpp
View file @
dc8edad8
...
...
@@ -26,6 +26,7 @@
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/float8.hpp>
template
<
class
T
>
struct
test_nearbyint
:
verify_program
<
test_nearbyint
<
T
>>
...
...
@@ -45,3 +46,4 @@ struct test_nearbyint : verify_program<test_nearbyint<T>>
template
struct
test_nearbyint
<
migraphx
::
half
>;
template
struct
test_nearbyint
<
float
>;
template
struct
test_nearbyint
<
migraphx
::
fp8
::
fp8e4m3fnuz
>;
test/verify/test_pad.cpp
View file @
dc8edad8
...
...
@@ -27,13 +27,14 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_pad
:
verify_program
<
test_pad
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_pad
:
verify_program
<
test_pad
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s0
{
migraphx
::
shape
::
int32_t
ype
,
{
1
,
96
,
165
,
165
}};
migraphx
::
shape
s0
{
DT
ype
,
{
1
,
96
,
165
,
165
}};
std
::
vector
<
int64_t
>
pads0
=
{
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
};
std
::
vector
<
int64_t
>
pads1
=
{
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
};
std
::
vector
<
int64_t
>
pads2
=
{
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
};
...
...
@@ -46,3 +47,8 @@ struct test_pad : verify_program<test_pad>
return
p
;
}
};
template
struct
test_pad
<
migraphx
::
shape
::
int32_type
>;
template
struct
test_pad
<
migraphx
::
shape
::
float_type
>;
template
struct
test_pad
<
migraphx
::
shape
::
half_type
>;
template
struct
test_pad
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_pow.cpp
View file @
dc8edad8
...
...
@@ -27,13 +27,15 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_pow
:
verify_program
<
test_pow
>
template
<
typename
CType
>
struct
test_pow
:
verify_program
<
test_pow
<
CType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_type
,
{
6
}};
migraphx
::
shape
::
type_t
dtype
=
migraphx
::
shape
::
get_type
<
CType
>
();
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
dtype
,
{
6
}};
std
::
vector
<
float
>
vec_e
(
s
.
elements
(),
2.0
f
);
auto
b
=
mm
->
add_parameter
(
"x"
,
s
);
auto
e
=
mm
->
add_literal
(
migraphx
::
literal
(
s
,
vec_e
));
...
...
@@ -41,3 +43,6 @@ struct test_pow : verify_program<test_pow>
return
p
;
}
};
template
struct
test_pow
<
float
>;
template
struct
test_pow
<
migraphx
::
half
>;
template
struct
test_pow
<
migraphx
::
fp8
::
fp8e4m3fnuz
>;
test/verify/test_reduce_add.cpp
View file @
dc8edad8
...
...
@@ -27,14 +27,16 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/shape.hpp>
struct
test_reduce_add
:
verify_program
<
test_reduce_add
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_reduce_add
:
verify_program
<
test_reduce_add
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
4
,
1000
,
2
,
2
}};
migraphx
::
shape
s
{
DT
ype
,
{
4
,
1000
,
2
,
2
}};
migraphx
::
shape
bs
{
migraphx
::
shape
::
half_type
,
{
1
,
32
,
128
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
reduce_mean
=
...
...
@@ -46,3 +48,6 @@ struct test_reduce_add : verify_program<test_reduce_add>
return
p
;
};
};
template
struct
test_reduce_add
<
migraphx
::
shape
::
float_type
>;
template
struct
test_reduce_add
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_reduce_mean_nhwc.cpp
View file @
dc8edad8
...
...
@@ -28,14 +28,14 @@
#include <migraphx/make_op.hpp>
#include <migraphx/instruction.hpp>
struct
test_reduce_mean_nhwc
:
verify_program
<
test_reduce_mean_nhwc
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_reduce_mean_nhwc
:
verify_program
<
test_reduce_mean_nhwc
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
s
=
migraphx
::
shape
::
from_permutation
(
migraphx
::
shape
::
float_type
,
{
4
,
256
,
2
,
2
},
{
0
,
2
,
3
,
1
});
auto
*
mm
=
p
.
get_main_module
();
auto
s
=
migraphx
::
shape
::
from_permutation
(
DType
,
{
4
,
256
,
2
,
2
},
{
0
,
2
,
3
,
1
});
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
reduce
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"reduce_mean"
,
{{
"axes"
,
{
1
}}}),
x
);
auto
abs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"abs"
),
reduce
);
...
...
@@ -44,3 +44,7 @@ struct test_reduce_mean_nhwc : verify_program<test_reduce_mean_nhwc>
return
p
;
};
};
template
struct
test_reduce_mean_nhwc
<
migraphx
::
shape
::
float_type
>;
template
struct
test_reduce_mean_nhwc
<
migraphx
::
shape
::
half_type
>;
template
struct
test_reduce_mean_nhwc
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_reduce_op_large.cpp
View file @
dc8edad8
...
...
@@ -51,6 +51,22 @@ template struct test_reduce_op_large<migraphx::op::reduce_min, 1, migraphx::shap
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_prod
,
2
,
migraphx
::
shape
::
float_type
>;
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_sum
,
1
,
migraphx
::
shape
::
float_type
>;
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_max
,
1
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_mean
,
1
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_min
,
1
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_prod
,
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_large
<
migraphx
::
op
::
reduce_sum
,
1
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
struct
test_reduce_mean_1
:
verify_program
<
test_reduce_mean_1
>
{
migraphx
::
program
create_program
()
const
...
...
test/verify/test_reduce_op_small.cpp
View file @
dc8edad8
...
...
@@ -56,3 +56,19 @@ template struct test_reduce_op_small<migraphx::op::reduce_mean, 2, migraphx::sha
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_max
,
2
,
migraphx
::
shape
::
half_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_min
,
2
,
migraphx
::
shape
::
half_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_prod
,
-
2
,
migraphx
::
shape
::
half_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_sum
,
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_mean
,
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_max
,
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_min
,
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
template
struct
test_reduce_op_small
<
migraphx
::
op
::
reduce_prod
,
-
2
,
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_roialign.cpp
View file @
dc8edad8
...
...
@@ -27,15 +27,16 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_roialign
:
verify_program
<
test_roialign
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_roialign
:
verify_program
<
test_roialign
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
x_s
{
migraphx
::
shape
::
float_t
ype
,
{
5
,
4
,
10
,
10
}};
migraphx
::
shape
x_s
{
DT
ype
,
{
5
,
4
,
10
,
10
}};
migraphx
::
shape
roi_s
{
migraphx
::
shape
::
float_t
ype
,
{
5
,
4
}};
migraphx
::
shape
roi_s
{
DT
ype
,
{
5
,
4
}};
migraphx
::
shape
ind_s
{
migraphx
::
shape
::
int64_type
,
{
5
}};
std
::
vector
<
int64_t
>
ind_vec
=
{
0
,
2
,
3
,
4
,
1
};
...
...
@@ -44,10 +45,10 @@ struct test_roialign : verify_program<test_roialign>
auto
roi
=
mm
->
add_parameter
(
"roi"
,
roi_s
);
auto
ind
=
mm
->
add_literal
(
migraphx
::
literal
(
ind_s
,
ind_vec
));
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"roialign"
,
{{
"spatial_scale"
,
1.0
},
{
"output_height"
,
5
},
{
"output_width"
,
5
},
{
"sampling_ratio"
,
2
}}),
{{
"spatial_scale"
,
1.0
},
{
"output_height"
,
5
},
{
"output_width"
,
5
},
{
"sampling_ratio"
,
2
}}),
x
,
roi
,
ind
);
...
...
@@ -56,3 +57,7 @@ struct test_roialign : verify_program<test_roialign>
return
p
;
}
};
template
struct
test_roialign
<
migraphx
::
shape
::
float_type
>;
template
struct
test_roialign
<
migraphx
::
shape
::
half_type
>;
template
struct
test_roialign
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_rsqrt.cpp
View file @
dc8edad8
...
...
@@ -23,22 +23,26 @@
*/
#include "verify_program.hpp"
#include <migraphx/float8.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_rsqrt
:
verify_program
<
test_rsqrt
>
template
<
typename
CType
>
struct
test_rsqrt
:
verify_program
<
test_rsqrt
<
CType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
::
type_t
dtype
=
migraphx
::
shape
::
get_type
<
CType
>
();
std
::
vector
<
size_t
>
input_lens
{
1
,
3
,
16
,
16
};
migraphx
::
shape
s
{
migraphx
::
shape
::
float_
type
,
input_lens
};
migraphx
::
shape
s
{
d
type
,
input_lens
};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
min_val
=
mm
->
add_literal
(
1.0
f
);
auto
max_val
=
mm
->
add_literal
(
std
::
numeric_limits
<
float
>::
max
());
min_val
=
mm
->
add_instruction
(
auto
min_val
=
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
dtype
},
{
1.0
}});
auto
max_val
=
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
dtype
},
{
std
::
numeric_limits
<
CType
>::
max
()}});
min_val
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
min_val
);
max_val
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
max_val
);
...
...
@@ -47,3 +51,7 @@ struct test_rsqrt : verify_program<test_rsqrt>
return
p
;
};
};
template
struct
test_rsqrt
<
float
>;
template
struct
test_rsqrt
<
migraphx
::
half
>;
template
struct
test_rsqrt
<
migraphx
::
fp8
::
fp8e4m3fnuz
>;
test/verify/test_scatternd.cpp
View file @
dc8edad8
...
...
@@ -25,18 +25,19 @@
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/shape.hpp>
struct
test_scatternd
:
verify_program
<
test_scatternd
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_scatternd
:
verify_program
<
test_scatternd
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
dtype
=
migraphx
::
shape
::
float_type
;
auto
itype
=
migraphx
::
shape
::
int64_type
;
migraphx
::
shape
ds
{
dt
ype
,
{
1
}};
migraphx
::
shape
ds
{
DT
ype
,
{
1
}};
migraphx
::
shape
is
{
itype
,
{
4
,
1
}};
migraphx
::
shape
us
{
dt
ype
,
{
4
}};
migraphx
::
shape
us
{
DT
ype
,
{
4
}};
std
::
vector
<
int64_t
>
ind_vec
{
4
,
3
,
1
,
7
};
auto
ld
=
mm
->
add_literal
(
migraphx
::
literal
{
ds
,
{
1
}});
...
...
@@ -51,3 +52,7 @@ struct test_scatternd : verify_program<test_scatternd>
return
p
;
}
};
template
struct
test_scatternd
<
migraphx
::
shape
::
float_type
>;
template
struct
test_scatternd
<
migraphx
::
shape
::
half_type
>;
template
struct
test_scatternd
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
test/verify/test_sin.cpp
View file @
dc8edad8
...
...
@@ -27,15 +27,20 @@
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_sin
:
verify_program
<
test_sin
>
template
<
migraphx
::
shape
::
type_t
DType
>
struct
test_sin
:
verify_program
<
test_sin
<
DType
>>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
float_t
ype
,
{
10
}};
migraphx
::
shape
s
{
DT
ype
,
{
10
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"sin"
),
x
);
return
p
;
}
};
template
struct
test_sin
<
migraphx
::
shape
::
float_type
>;
template
struct
test_sin
<
migraphx
::
shape
::
half_type
>;
template
struct
test_sin
<
migraphx
::
shape
::
fp8e4m3fnuz_type
>;
Prev
1
2
3
4
5
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