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
a29f3d94
"test/srt/vscode:/vscode.git/clone" did not exist on "54dd3ea12277f782823c8067ed723279136c40bb"
Commit
a29f3d94
authored
Aug 15, 2018
by
Paul
Browse files
Resue verify for onnx
parent
3f66a1ed
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
43 deletions
+38
-43
src/include/migraph/verify.hpp
src/include/migraph/verify.hpp
+2
-8
src/onnx/verify_onnx.cpp
src/onnx/verify_onnx.cpp
+14
-12
test/cpu_ops_test.cpp
test/cpu_ops_test.cpp
+20
-20
test/gpu/miopen.cpp
test/gpu/miopen.cpp
+2
-2
test/onnx/onnx_test.cpp
test/onnx/onnx_test.cpp
+0
-1
No files found.
test
/include/verify.hpp
→
src
/include/
migraph/
verify.hpp
View file @
a29f3d94
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
#include <iostream>
#include <iostream>
#include <numeric>
#include <numeric>
namespace
test
{
namespace
migraph
{
// Compute the value of a range
// Compute the value of a range
template
<
class
R
>
template
<
class
R
>
...
@@ -65,12 +65,6 @@ struct not_finite_fn
...
@@ -65,12 +65,6 @@ struct not_finite_fn
};
};
static
constexpr
not_finite_fn
not_finite
{};
static
constexpr
not_finite_fn
not_finite
{};
template
<
class
T
,
class
U
>
T
as
(
T
,
U
x
)
{
return
x
;
}
struct
compare_mag_fn
struct
compare_mag_fn
{
{
template
<
class
T
,
class
U
>
template
<
class
T
,
class
U
>
...
@@ -172,5 +166,5 @@ bool verify_range(R1&& r1, R2&& r2, double tolerance = 80)
...
@@ -172,5 +166,5 @@ bool verify_range(R1&& r1, R2&& r2, double tolerance = 80)
auto
error
=
rms_range
(
r1
,
r2
);
auto
error
=
rms_range
(
r1
,
r2
);
return
error
<=
threshold
;
return
error
<=
threshold
;
}
}
}
// namespace
test
}
// namespace
migraph
#endif
#endif
src/onnx/verify_onnx.cpp
View file @
a29f3d94
...
@@ -5,8 +5,7 @@
...
@@ -5,8 +5,7 @@
#include <migraph/gpu/target.hpp>
#include <migraph/gpu/target.hpp>
#include <migraph/gpu/hip.hpp>
#include <migraph/gpu/hip.hpp>
#include <migraph/generate.hpp>
#include <migraph/generate.hpp>
#include <miopen/miopen.h>
#include <migraph/verify.hpp>
#include <migraph/gpu/miopen.hpp>
migraph
::
argument
run_cpu
(
std
::
string
file
)
migraph
::
argument
run_cpu
(
std
::
string
file
)
{
{
...
@@ -44,15 +43,18 @@ int main(int argc, char const* argv[])
...
@@ -44,15 +43,18 @@ int main(int argc, char const* argv[])
std
::
string
file
=
argv
[
1
];
std
::
string
file
=
argv
[
1
];
auto
x
=
run_cpu
(
file
);
auto
x
=
run_cpu
(
file
);
auto
y
=
run_gpu
(
file
);
auto
y
=
run_gpu
(
file
);
if
(
x
==
y
)
visit_all
(
x
,
y
)([](
auto
cpu
,
auto
gpu
)
{
if
(
migraph
::
verify_range
(
cpu
,
gpu
))
{
{
std
::
cout
<<
"Passed"
<<
std
::
endl
;
std
::
cout
<<
"Passed"
<<
std
::
endl
;
}
}
else
else
{
{
std
::
cout
<<
"Not equal"
<<
std
::
endl
;
std
::
cout
<<
"Not equal"
<<
std
::
endl
;
std
::
cout
<<
x
<<
std
::
endl
;
std
::
cout
<<
cpu
<<
std
::
endl
;
std
::
cout
<<
y
<<
std
::
endl
;
std
::
cout
<<
gpu
<<
std
::
endl
;
}
}
});
}
}
}
}
test/cpu_ops_test.cpp
View file @
a29f3d94
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
#include <migraph/literal.hpp>
#include <migraph/literal.hpp>
#include <migraph/operators.hpp>
#include <migraph/operators.hpp>
#include <migraph/cpu/cpu_target.hpp>
#include <migraph/cpu/cpu_target.hpp>
#include <migraph/verify.hpp>
#include "test.hpp"
#include "test.hpp"
#include "verify.hpp"
void
batch_norm_inference_test
()
void
batch_norm_inference_test
()
{
{
...
@@ -43,7 +43,7 @@ void batch_norm_inference_test()
...
@@ -43,7 +43,7 @@ void batch_norm_inference_test()
std
::
fill
(
gold
.
begin
(),
gold
.
end
(),
output_val
);
std
::
fill
(
gold
.
begin
(),
gold
.
end
(),
output_val
);
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
result_vector
,
gold
));
}
}
void
exp_test
()
void
exp_test
()
...
@@ -57,7 +57,7 @@ void exp_test()
...
@@ -57,7 +57,7 @@ void exp_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0.36787944
f
,
1.
f
,
2.71828183
f
};
std
::
vector
<
float
>
gold
=
{
0.36787944
f
,
1.
f
,
2.71828183
f
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
sin_test
()
void
sin_test
()
...
@@ -71,7 +71,7 @@ void sin_test()
...
@@ -71,7 +71,7 @@ void sin_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
-
0.84147098
f
,
0.
f
,
0.84147098
f
};
std
::
vector
<
float
>
gold
=
{
-
0.84147098
f
,
0.
f
,
0.84147098
f
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
cos_test
()
void
cos_test
()
...
@@ -85,7 +85,7 @@ void cos_test()
...
@@ -85,7 +85,7 @@ void cos_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0.54030231
f
,
1.
f
,
0.54030231
f
};
std
::
vector
<
float
>
gold
=
{
0.54030231
f
,
1.
f
,
0.54030231
f
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
tan_test
()
void
tan_test
()
...
@@ -99,7 +99,7 @@ void tan_test()
...
@@ -99,7 +99,7 @@ void tan_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
-
1.55740772
f
,
0.0
f
,
1.55740772
f
};
std
::
vector
<
float
>
gold
=
{
-
1.55740772
f
,
0.0
f
,
1.55740772
f
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
add_test
()
void
add_test
()
...
@@ -114,7 +114,7 @@ void add_test()
...
@@ -114,7 +114,7 @@ void add_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
};
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
broadcast_test
()
void
broadcast_test
()
...
@@ -154,7 +154,7 @@ void add_broadcast_test()
...
@@ -154,7 +154,7 @@ void add_broadcast_test()
std
::
vector
<
float
>
results_vector
(
12
);
std
::
vector
<
float
>
results_vector
(
12
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
1
,
2
,
2
,
3
,
4
,
4
,
5
,
6
,
6
,
7
,
8
};
std
::
vector
<
float
>
gold
=
{
0
,
1
,
2
,
2
,
3
,
4
,
4
,
5
,
6
,
6
,
7
,
8
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
sub_test
()
void
sub_test
()
...
@@ -169,7 +169,7 @@ void sub_test()
...
@@ -169,7 +169,7 @@ void sub_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
-
2
,
-
2
,
-
2
};
std
::
vector
<
float
>
gold
=
{
-
2
,
-
2
,
-
2
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
mul_test
()
void
mul_test
()
...
@@ -184,7 +184,7 @@ void mul_test()
...
@@ -184,7 +184,7 @@ void mul_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
-
1
,
0
,
3
};
std
::
vector
<
float
>
gold
=
{
-
1
,
0
,
3
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
div_test
()
void
div_test
()
...
@@ -199,7 +199,7 @@ void div_test()
...
@@ -199,7 +199,7 @@ void div_test()
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
-
1.
f
,
0.25
f
,
0.25
f
};
std
::
vector
<
float
>
gold
=
{
-
1.
f
,
0.25
f
,
0.25
f
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
void
reshape_test
()
void
reshape_test
()
...
@@ -216,7 +216,7 @@ void reshape_test()
...
@@ -216,7 +216,7 @@ void reshape_test()
auto
result
=
p
.
eval
({});
auto
result
=
p
.
eval
({});
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
data
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
data
));
}
}
{
{
migraph
::
program
p
;
migraph
::
program
p
;
...
@@ -227,7 +227,7 @@ void reshape_test()
...
@@ -227,7 +227,7 @@ void reshape_test()
auto
result
=
p
.
eval
({});
auto
result
=
p
.
eval
({});
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
data
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
data
));
}
}
{
{
migraph
::
program
p
;
migraph
::
program
p
;
...
@@ -238,7 +238,7 @@ void reshape_test()
...
@@ -238,7 +238,7 @@ void reshape_test()
auto
result
=
p
.
eval
({});
auto
result
=
p
.
eval
({});
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
data
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
data
));
}
}
}
}
...
@@ -406,7 +406,7 @@ void softmax_test()
...
@@ -406,7 +406,7 @@ void softmax_test()
auto
result
=
p
.
eval
({});
auto
result
=
p
.
eval
({});
std
::
vector
<
float
>
results_vector
(
120
);
std
::
vector
<
float
>
results_vector
(
120
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
s
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
s
));
}
}
void
conv2d_test
()
void
conv2d_test
()
...
@@ -469,7 +469,7 @@ void conv2d_test()
...
@@ -469,7 +469,7 @@ void conv2d_test()
std
::
vector
<
float
>
results_vector
(
16
);
std
::
vector
<
float
>
results_vector
(
16
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
s
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
s
));
}
}
void
conv2d_padding_test
()
void
conv2d_padding_test
()
...
@@ -525,7 +525,7 @@ void conv2d_padding_test()
...
@@ -525,7 +525,7 @@ void conv2d_padding_test()
std
::
vector
<
float
>
results_vector
(
64
);
std
::
vector
<
float
>
results_vector
(
64
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
s
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
s
));
}
}
void
conv2d_padding_stride_test
()
void
conv2d_padding_stride_test
()
...
@@ -586,7 +586,7 @@ void conv2d_padding_stride_test()
...
@@ -586,7 +586,7 @@ void conv2d_padding_stride_test()
std
::
vector
<
float
>
results_vector
(
16
);
std
::
vector
<
float
>
results_vector
(
16
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
test
::
verify_range
(
results_vector
,
s
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
s
));
}
}
void
transpose_test
()
void
transpose_test
()
...
@@ -622,7 +622,7 @@ void transpose_test()
...
@@ -622,7 +622,7 @@ void transpose_test()
std
::
vector
<
float
>
results_vector
(
12
);
std
::
vector
<
float
>
results_vector
(
12
);
result2
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result2
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
3
,
6
,
9
,
1
,
4
,
7
,
10
,
2
,
5
,
8
,
11
};
std
::
vector
<
float
>
gold
=
{
0
,
3
,
6
,
9
,
1
,
4
,
7
,
10
,
2
,
5
,
8
,
11
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
}
}
...
@@ -643,7 +643,7 @@ void contiguous_test()
...
@@ -643,7 +643,7 @@ void contiguous_test()
std
::
vector
<
size_t
>
new_lens
=
{
1
,
3
,
2
,
2
};
std
::
vector
<
size_t
>
new_lens
=
{
1
,
3
,
2
,
2
};
std
::
vector
<
size_t
>
new_strides
=
{
12
,
1
,
6
,
3
};
std
::
vector
<
size_t
>
new_strides
=
{
12
,
1
,
6
,
3
};
std
::
vector
<
float
>
gold
=
{
1
,
4
,
7
,
10
,
2
,
5
,
8
,
11
,
3
,
6
,
9
,
0
};
std
::
vector
<
float
>
gold
=
{
1
,
4
,
7
,
10
,
2
,
5
,
8
,
11
,
3
,
6
,
9
,
0
};
EXPECT
(
test
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraph
::
verify_range
(
results_vector
,
gold
));
}
}
int
main
()
int
main
()
...
...
test/gpu/miopen.cpp
View file @
a29f3d94
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
#include <migraph/gpu/hip.hpp>
#include <migraph/gpu/hip.hpp>
#include <migraph/manage_ptr.hpp>
#include <migraph/manage_ptr.hpp>
#include <migraph/type_name.hpp>
#include <migraph/type_name.hpp>
#include <migraph/verify.hpp>
#include <miopen/miopen.h>
#include <miopen/miopen.h>
...
@@ -15,7 +16,6 @@
...
@@ -15,7 +16,6 @@
#include <thread>
#include <thread>
#include "test.hpp"
#include "test.hpp"
#include "verify.hpp"
#ifdef __clang__
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic push
...
@@ -102,7 +102,7 @@ void verify_program()
...
@@ -102,7 +102,7 @@ void verify_program()
auto
cpu_arg_f
=
detach_async
([]
{
return
run_cpu
<
V
>
();
});
auto
cpu_arg_f
=
detach_async
([]
{
return
run_cpu
<
V
>
();
});
auto
gpu_arg
=
run_gpu
<
V
>
();
auto
gpu_arg
=
run_gpu
<
V
>
();
visit_all
(
cpu_arg_f
.
get
(),
gpu_arg
)([](
auto
cpu
,
auto
gpu
)
{
visit_all
(
cpu_arg_f
.
get
(),
gpu_arg
)([](
auto
cpu
,
auto
gpu
)
{
if
(
not
test
::
verify_range
(
cpu
,
gpu
))
if
(
not
migraph
::
verify_range
(
cpu
,
gpu
))
{
{
std
::
cout
<<
"FAILED: "
<<
migraph
::
get_type_name
<
V
>
()
<<
std
::
endl
;
std
::
cout
<<
"FAILED: "
<<
migraph
::
get_type_name
<
V
>
()
<<
std
::
endl
;
}
}
...
...
test/onnx/onnx_test.cpp
View file @
a29f3d94
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
#include <migraph/program.hpp>
#include <migraph/program.hpp>
#include <migraph/onnx.hpp>
#include <migraph/onnx.hpp>
#include "test.hpp"
#include "test.hpp"
#include "verify.hpp"
void
pytorch_conv_bias_test
()
void
pytorch_conv_bias_test
()
{
{
...
...
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