Unverified Commit 500d9441 authored by Paul Fultz II's avatar Paul Fultz II Committed by GitHub
Browse files

Split cpu and reference implementation (#671)



* Add all_targets cmake target

* Rename target

* Add ref target

* Rename tests

* Refactor compiler target

* Formatting

* Verify for every target

* Formatting

* Add verify test suite

* Formatting

* Add initial test programs

* Formatting

* Add rnn tests

* Formatting

* Validate gpu

* Formatting

* Remove old gpu tests

* Fix gpu tests

* Fix ref error

* Fix tidy issues

* Formatting

* Tidy fixes

* Fix header in python api

* Rename to ref

* Use ref in verify_onnx

* Fix tidy issue

* Build with verbose on

* Fix typo

* Remove verbose

* rename some cpu prefix to ref
Co-authored-by: default avatarShucai Xiao <Shucai.Xiao@amd.com>
parent ba33d25c
......@@ -4,7 +4,7 @@
#include <migraphx/operators.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/quantization.hpp>
#include <migraphx/dead_code_elimination.hpp>
......@@ -298,7 +298,7 @@ TEST_CASE(op_capture)
{
auto p = create_program_float();
auto op_capture_p = create_program_op();
migraphx::target t = migraphx::cpu::target{};
migraphx::target t = migraphx::ref::target{};
migraphx::capture_arguments(p, t, {"dot", "convolution"});
EXPECT(p == op_capture_p);
}
......@@ -946,14 +946,14 @@ TEST_CASE(target_copy)
migraphx::program::parameter_map m;
migraphx::shape s{migraphx::shape::float_type, {3, 3}};
m["x"] = migraphx::generate_argument(s);
std::vector<float> cpu_result;
migraphx::target cpu_t = migraphx::cpu::target{};
run_prog(p, cpu_t, m, cpu_result);
std::vector<float> ref_result;
migraphx::target ref_t = migraphx::ref::target{};
run_prog(p, ref_t, m, ref_result);
std::vector<float> orig_result;
run_prog(p, cpu_t, m, orig_result);
run_prog(p, ref_t, m, orig_result);
EXPECT(migraphx::verify_range(cpu_result, orig_result));
EXPECT(migraphx::verify_range(ref_result, orig_result));
}
}
......@@ -1009,11 +1009,11 @@ TEST_CASE(int8_quantization_dot)
m["a"] = migraphx::generate_argument(sa);
m["c"] = migraphx::generate_argument(sc);
std::vector<float> quant_result;
migraphx::target cpu_t = migraphx::cpu::target{};
run_prog(p, cpu_t, m, quant_result, true);
migraphx::target ref_t = migraphx::ref::target{};
run_prog(p, ref_t, m, quant_result, true);
std::vector<float> no_quant_result;
run_prog(p, cpu_t, m, no_quant_result);
run_prog(p, ref_t, m, no_quant_result);
EXPECT(migraphx::verify_range(quant_result, no_quant_result));
}
......@@ -1052,11 +1052,11 @@ TEST_CASE(int8_quantization_conv)
{
auto p = create_program();
std::vector<float> quant_result;
migraphx::target cpu_t = migraphx::cpu::target{};
run_prog(p, cpu_t, quant_result, true);
migraphx::target ref_t = migraphx::ref::target{};
run_prog(p, ref_t, quant_result, true);
std::vector<float> no_quant_result;
run_prog(p, cpu_t, no_quant_result);
run_prog(p, ref_t, no_quant_result);
EXPECT(migraphx::verify_range(quant_result, no_quant_result));
}
......
......@@ -3,7 +3,7 @@
#include <migraphx/literal.hpp>
#include <migraphx/operators.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/onnx.hpp>
#include "test.hpp"
......@@ -49,7 +49,7 @@ void matmul_test()
migraphx::shape b_shape{migraphx::shape::get_type<T>{}, {5, 3}};
auto bl = p.add_literal(migraphx::literal{b_shape, b});
p.add_instruction(migraphx::op::dot{}, al, bl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<T> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -98,7 +98,7 @@ void matmul_test_ex()
migraphx::shape b_shape{migraphx::shape::get_type<T>{}, {1, 1, 5, 3}};
auto bl = p.add_literal(migraphx::literal{b_shape, b});
p.add_instruction(migraphx::op::dot{}, al, bl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<T> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -133,7 +133,7 @@ TEST_CASE(matmul_mutli_dim_2)
auto l2 = p.add_literal(migraphx::literal{m2_shape, m2});
p.add_instruction(migraphx::op::dot{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -203,7 +203,7 @@ TEST_CASE(gemm_mutli_dim_2_beta0)
float alpha = 1.0f;
float beta = 0.0f;
p.add_instruction(migraphx::op::dot{alpha, beta}, l1, l2, l3);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -264,7 +264,7 @@ TEST_CASE(gemm_beta_0)
float alpha = 1.0f;
float beta = 0.0f;
p.add_instruction(migraphx::op::dot{alpha, beta}, l1, l2, l3);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -304,7 +304,7 @@ TEST_CASE(matmul_mutli_dim_2_3)
auto l2 = p.add_literal(migraphx::literal{m2_shape, m2});
p.add_instruction(migraphx::op::dot{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -354,7 +354,7 @@ TEST_CASE(gemm_mutli_dim1_2_3)
auto b_beta = p.add_instruction(migraphx::op::scalar{m12_alpha->get_shape().lens()}, l_beta);
auto m3_beta = p.add_instruction(migraphx::op::mul{}, b_beta, l3);
p.add_instruction(migraphx::op::add{}, m3_beta, m12_alpha);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -400,7 +400,7 @@ TEST_CASE(gemm_mutli_3args)
float alpha = 0.35;
float beta = 0.41;
p.add_instruction(migraphx::op::dot{alpha, beta}, l1, l2, l3);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -468,7 +468,7 @@ TEST_CASE(gemm_3args)
-0.835966,
5.74736,
4.22063};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -504,7 +504,7 @@ TEST_CASE(matmul_vv_inner_product)
auto ubl = p.add_instruction(migraphx::op::unsqueeze{{1}}, bl);
p.add_instruction(migraphx::op::dot{}, ual, ubl);
std::vector<float> gold = {-1.43461};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -538,7 +538,7 @@ TEST_CASE(matmul_vv_inner_product)
float alpha = 0.32f;
p.add_instruction(migraphx::op::dot{alpha}, ual, ubl);
std::vector<float> gold = {-0.4590752};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -574,7 +574,7 @@ TEST_CASE(matmul_vm)
p.add_instruction(migraphx::op::dot{}, ual, bl);
std::vector<float> gold = {-3.78111, -3.40007, -2.1972, -3.31448, -3.80326};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -608,7 +608,7 @@ TEST_CASE(matmul_vm)
p.add_instruction(migraphx::op::dot{alpha}, ual, bl);
std::vector<float> gold = {-1.89056, -1.70003, -1.0986, -1.65724, -1.90163};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -652,7 +652,7 @@ TEST_CASE(matmul_vm)
1.38484,
-2.45019,
-1.35064};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -696,7 +696,7 @@ TEST_CASE(matmul_vm)
0.290817,
-0.514539,
-0.283635};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -733,7 +733,7 @@ TEST_CASE(matmul_mv)
auto ubl = p.add_instruction(migraphx::op::unsqueeze{{1}}, bl);
p.add_instruction(migraphx::op::dot{}, al, ubl);
std::vector<float> gold = {1.31982, 1.19022, -1.96062};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -768,7 +768,7 @@ TEST_CASE(matmul_mv)
float alpha = 0.3f;
p.add_instruction(migraphx::op::dot{alpha}, al, ubl);
std::vector<float> gold = {0.395946, 0.357067, -0.588187};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -809,7 +809,7 @@ TEST_CASE(matmul_mv)
2.87146,
3.29447,
0.765651};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -860,7 +860,7 @@ TEST_CASE(matmul_mm1)
-0.557691, 6.13527, -2.91743, 2.37836, -6.42584, 1.14979,
0.77227, 0.349659, 2.92759, 2.32384, -2.90664, 0.0527679,
-0.547761, -0.155467, 0.964619, 2.09133, -4.44281, -1.3864};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -910,7 +910,7 @@ TEST_CASE(matmul_mm1)
-0.710558, 0.259424, -0.342345, -1.80522, -0.580476, 0.277368, -3.95582, 0.614823,
-0.415107, 0.305138, 0.435993, -0.107089, -0.767885, -4.00837, 1.09921, -2.02129,
0.109717, 0.618422, 0.438342, 0.29602, 2.00928, 0.420871};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -952,7 +952,7 @@ TEST_CASE(matmul_mm2)
1.83096922, 2.5512663, -1.07926588, -2.12749134, 0.33014536, -0.80393025,
0.60740202, 0.95217761, -1.06087445, -4.75868152, -3.6687713, -1.26539821};
p.add_instruction(migraphx::op::dot{}, al, bbl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -990,7 +990,7 @@ TEST_CASE(matmul_mm2)
1.02442564e-01, -1.87659303e+00, -4.67302454e-01, 9.16189968e-01, -1.33537175e-01,
8.27398578e-01, 1.94406914e+00, -2.39250915e-01, -1.77062701e+00, -6.46239534e-01,
-7.95202750e-01};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1040,7 +1040,7 @@ TEST_CASE(matmul_mm2)
-0.61459168, -0.52561056, 0.3309648, -0.46185697, -1.60586695, -0.98590829,
0.63012062, -0.25606052, -0.69419352, -1.78299913, -0.38572706, 1.92249442,
0.3884186, -0.48153048, 0.84932351, 0.67234919, -1.07821322, -0.01208216};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1085,7 +1085,7 @@ TEST_CASE(matmul_mm2)
1.38307367, 0.42677257, 0.83759966, -0.34827442, -1.45067092, 2.09599671,
1.92882983, -0.30996324, 2.19736278, 2.32389426, 2.36741832, 1.62253915,
0.26698225, -0.00741609, -2.53680983, -0.0679954, 0.04499683, 0.85354276};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1112,7 +1112,7 @@ TEST_CASE(quant_dot_2args_multi4)
370, 392, 414, 436, 458, 496, 534, 572, 610, 648, 686,
724, 762, 688, 742, 796, 850, 904, 958, 1012, 1066};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1137,7 +1137,7 @@ TEST_CASE(quant_dot_2args_multi4)
580, 608, 636, 664, 692, 544, 576, 608, 640, 672, 704,
736, 768, 592, 628, 664, 700, 736, 772, 808, 844};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1162,7 +1162,7 @@ TEST_CASE(quant_dot_2args_multi4)
302, 390, 478, 566, 654, 62, 214, 366, 518, 670, 822,
974, 1126, 86, 302, 518, 734, 950, 1166, 1382, 1598};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1188,7 +1188,7 @@ TEST_CASE(quant_dot_2args_multi4)
398, 510, 622, 734, 846, 68, 196, 324, 452, 580, 708,
836, 964, 74, 218, 362, 506, 650, 794, 938, 1082};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1214,7 +1214,7 @@ TEST_CASE(quant_dot_2args_general)
std::vector<int> gold = {
70, 76, 82, 88, 94, 190, 212, 234, 256, 278, 310, 348, 386, 424, 462};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1238,7 +1238,7 @@ TEST_CASE(quant_dot_2args_general)
std::vector<int> gold = {
210, 228, 246, 264, 282, 240, 262, 284, 306, 328, 270, 296, 322, 348, 374};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1267,7 +1267,7 @@ TEST_CASE(quant_dot_2args_general)
std::vector<int> gold = {
28, 76, 124, 172, 220, 76, 252, 428, 604, 780, 124, 428, 732, 1036, 1340};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1292,7 +1292,7 @@ TEST_CASE(quant_dot_2args_general)
std::vector<int> gold = {
126, 342, 558, 774, 990, 144, 408, 672, 936, 1200, 162, 474, 786, 1098, 1410};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1322,7 +1322,7 @@ TEST_CASE(quant_dot_3args_general)
std::vector<int> gold = {
982, 1011, 1040, 1069, 1098, 1127, 1156, 2557, 2650, 2743, 2836, 2929, 3022, 3115};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1349,7 +1349,7 @@ TEST_CASE(quant_dot_3args_general)
std::vector<int> gold = {
70, 76, 82, 88, 94, 190, 212, 234, 256, 278, 310, 348, 386, 424, 462};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1377,7 +1377,7 @@ TEST_CASE(quant_dot_3args_general)
std::vector<int> gold = {
1966, 2025, 2084, 2143, 2202, 2261, 2320, 2183, 2250, 2317, 2384, 2451, 2518, 2585};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1405,7 +1405,7 @@ TEST_CASE(quant_dot_3args_general)
std::vector<int> gold = {
286, 737, 1188, 1639, 2090, 2541, 2992, 755, 2230, 3705, 5180, 6655, 8130, 9605};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1434,7 +1434,7 @@ TEST_CASE(quant_dot_3args_general)
std::vector<int> gold = {
844, 2190, 3536, 4882, 6228, 7574, 8920, 942, 2480, 4018, 5556, 7094, 8632, 10170};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1468,7 +1468,7 @@ TEST_CASE(quant_dot_3args_batch)
5916, 6004, 6092, 6180, 6268, 6356, 9762, 9866, 9970, 10074, 10178, 10282,
10386, 11288, 11408, 11528, 11648, 11768, 11888, 12008};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......@@ -1502,7 +1502,7 @@ TEST_CASE(quant_dot_3args_batch)
12258, 13237, 14216, 15195, 16174, 17153, 24012, 25311, 26610, 27909, 29208, 30507,
24618, 25949, 27280, 28611, 29942, 31273, 25224, 26587, 27950, 29313, 30676, 32039};
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
......
......@@ -4,7 +4,7 @@
#include <migraphx/operators.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/quantization.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/quantization.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/onnx.hpp>
......@@ -26,7 +26,7 @@ TEST_CASE(slice_test)
p.add_instruction(migraphx::op::slice{{2}, {1}, {3}}, l0);
migraphx::shape s2{migraphx::shape::int32_type, {2, 2, 2}, {6, 3, 1}};
EXPECT(p.get_output_shapes().back() == s2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
migraphx::shape sresult{migraphx::shape::int32_type, {2, 2, 2}, {4, 2, 1}};
auto result = p.eval({}).back();
std::vector<int> gold = {1, 2, 4, 5, 7, 8, 10, 11};
......@@ -44,7 +44,7 @@ TEST_CASE(slice_test)
p.add_instruction(migraphx::op::slice{{0, 1, 2}, {0, 0, 0}, {2, 2, 2}}, l0);
migraphx::shape s2{migraphx::shape::int32_type, {2, 2, 2}, {6, 3, 1}};
EXPECT(p.get_output_shapes().back() == s2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
migraphx::shape sresult{migraphx::shape::int32_type, {2, 2, 2}, {4, 2, 1}};
auto result = p.eval({}).back();
std::vector<int> gold = {0, 1, 3, 4, 6, 7, 9, 10};
......@@ -70,7 +70,7 @@ TEST_CASE(concat_test)
auto l1 = p.add_literal(migraphx::literal{s1, data1});
auto l2 = p.add_literal(migraphx::literal{s2, data2});
p.add_instruction(migraphx::op::concat{axis}, l0, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> gold = {0, 1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 20};
std::vector<int> results_vector(2 * 6);
......@@ -94,7 +94,7 @@ TEST_CASE(concat_test)
auto l1 = p.add_literal(migraphx::literal{s1, data1});
auto l2 = p.add_literal(migraphx::literal{s2, data2});
p.add_instruction(migraphx::op::concat{axis}, l0, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> gold = {0, 1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 20};
std::vector<int> results_vector(2 * 6);
......@@ -118,7 +118,7 @@ TEST_CASE(concat_test)
auto l1 = p.add_literal(migraphx::literal{s1, data1});
auto l2 = p.add_literal(migraphx::literal{s2, data2});
p.add_instruction(migraphx::op::concat{axis}, l0, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
std::vector<int> results_vector(6 * 2);
......@@ -142,7 +142,7 @@ TEST_CASE(concat_test)
auto l1 = p.add_literal(migraphx::literal{s1, data1});
auto l2 = p.add_literal(migraphx::literal{s2, data2});
p.add_instruction(migraphx::op::concat{axis}, l0, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
std::vector<int> results_vector(6 * 2);
......@@ -168,7 +168,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = 0;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f};
......@@ -188,7 +188,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = 0;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f};
......@@ -208,7 +208,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = 1;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 2.5f, 3.5f, 5.5f, 6.5f, 8.5f};
......@@ -228,7 +228,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = -1;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 2.5f, 3.5f, 5.5f, 6.5f, 8.5f};
......@@ -249,7 +249,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = -1;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data{};
std::vector<float> golden = {0.5f, 3.5f, 6.5f};
......@@ -270,7 +270,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = -1;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data{};
std::vector<float> golden = {0.5f, 3.5f, 6.5f};
......@@ -291,7 +291,7 @@ TEST_CASE(gather_test)
auto a1 = p.add_literal(migraphx::literal{s_indices, indices});
int axis = -1;
p.add_instruction(migraphx::op::gather{axis}, a0, a1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res_data{};
std::vector<float> golden = {0.5f};
......@@ -309,7 +309,7 @@ TEST_CASE(squeeze_test)
migraphx::shape s2{migraphx::shape::float_type, {4, 3, 1, 3}};
auto l0 = p.add_literal(migraphx::literal{s1, data});
p.add_instruction(migraphx::op::squeeze{{1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape() == s2);
}
......@@ -320,7 +320,7 @@ TEST_CASE(squeeze_test)
migraphx::shape s2{migraphx::shape::float_type, {4, 1, 3, 3}};
auto l0 = p.add_literal(migraphx::literal{s1, data});
p.add_instruction(migraphx::op::squeeze{{3}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape() == s2);
}
......@@ -332,7 +332,7 @@ TEST_CASE(squeeze_test)
migraphx::shape s2{migraphx::shape::float_type, {4, 3, 3}};
auto l0 = p.add_literal(migraphx::literal{s1, data});
p.add_instruction(migraphx::op::squeeze{}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape() == s2);
}
......@@ -347,7 +347,7 @@ TEST_CASE(unsqueeze_test)
migraphx::shape s2{migraphx::shape::float_type, {4, 1, 3, 3}};
auto l0 = p.add_literal(migraphx::literal{s1, data});
p.add_instruction(migraphx::op::unsqueeze{{1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape() == s2);
}
......@@ -358,7 +358,7 @@ TEST_CASE(unsqueeze_test)
migraphx::shape s2{migraphx::shape::float_type, {4, 3, 1, 3}};
auto l0 = p.add_literal(migraphx::literal{s1, data});
p.add_instruction(migraphx::op::unsqueeze{{2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape() == s2);
}
......@@ -378,7 +378,7 @@ TEST_CASE(avgpool_test)
std::vector<float> data{0.3, 0.2, 0.4, 0.1, 0.8, 0.5, 0.9, 0.1, 0.1, 0.7, 0.1, 0.6};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -414,7 +414,7 @@ TEST_CASE(avgpool_test)
-0.2915};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -455,7 +455,7 @@ TEST_CASE(avgpool_test)
1.705, 0.444, -0.835, -0.506, 0.101, 0.602, 0.543, 0.357, 1.042};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -482,7 +482,7 @@ TEST_CASE(maxpool_test_1D_3D)
std::vector<float> data{0.3, 0.2, 0.4, 0.1, 0.8, 0.5, 0.9, 0.1, 0.1, 0.7, 0.1, 0.6};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -505,7 +505,7 @@ TEST_CASE(maxpool_test_1D_3D)
0.9907, 0.477, 1.5001, -1.1603, -1.361, 1.2556};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -529,7 +529,7 @@ TEST_CASE(maxpool_test_1D_3D)
0.9907, 0.477, 1.5001, -1.1603, -1.361, 1.2556};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -573,7 +573,7 @@ TEST_CASE(maxpool_test_1D_3D)
1.1364, 0.5041, 0.0647, 0.1941, -1.0819, -0.4629, -0.5107, 0.3612, -0.3583};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -593,7 +593,7 @@ TEST_CASE(globalavgpool_test)
std::vector<float> data{0.3, 0.2, 0.4, 0.1, 0.8, 0.5, 0.9, 0.1, 0.1, 0.7, 0.1, 0.6};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
......@@ -613,7 +613,7 @@ TEST_CASE(globalmaxpool_test)
std::vector<float> data{0.3, 0.2, 0.4, 0.1, 0.8, 0.5, 0.9, 0.1, 0.1, 0.7, 0.1, 0.6};
auto l0 = p.add_literal(migraphx::literal{s, data});
p.add_instruction(op, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
......@@ -641,7 +641,7 @@ TEST_CASE(im2col_3x3_no_pad_identity_test)
auto l_image = p.add_literal(migraphx::literal{s_image, input});
auto l_weights = p.add_literal(migraphx::literal{s_weights, weights});
p.add_instruction(migraphx::op::im2col{padding, stride, dilation}, l_image, l_weights);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1;
......@@ -670,7 +670,7 @@ TEST_CASE(im2col_3x3_no_pad_test)
auto l_image = p.add_literal(migraphx::literal{s_image, input});
auto l_weights = p.add_literal(migraphx::literal{s_weights, weights});
p.add_instruction(migraphx::op::im2col{padding, stride, dilation}, l_image, l_weights);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> correct = {0, 1, 2, 4, 5, 6, 8, 9, 10, 1, 2, 3, 5, 6, 7, 9, 10, 11,
......@@ -702,7 +702,7 @@ TEST_CASE(im2col_3x3_stride_2_no_pad_test)
auto l_image = p.add_literal(migraphx::literal{s_image, input});
auto l_weights = p.add_literal(migraphx::literal{s_weights, weights});
p.add_instruction(migraphx::op::im2col{padding, stride, dilation}, l_image, l_weights);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> correct = {0, 1, 2, 6, 7, 8, 12, 13, 14, 2, 3, 4,
......@@ -735,7 +735,7 @@ TEST_CASE(im2col_3x3_with_padding_test)
auto l_image = p.add_literal(migraphx::literal{s_image, input});
auto l_weights = p.add_literal(migraphx::literal{s_weights, weights});
p.add_instruction(migraphx::op::im2col{padding, stride, dilation}, l_image, l_weights);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> correct = {0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 1, 0, 2, 3, 0,
......@@ -770,7 +770,7 @@ TEST_CASE(batch_norm_1d_test)
auto variance = p.add_literal(migraphx::literal{c_shape, variance_data});
p.add_instruction(migraphx::op::batch_norm_inference{1e-5}, x, scale, bias, mean, variance);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> result_vector;
......@@ -827,7 +827,7 @@ TEST_CASE(batch_norm_1d_per_actv_test)
bias,
mean,
variance);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> result_vector;
......@@ -886,7 +886,7 @@ TEST_CASE(batch_norm_inference_test)
auto variance = p.add_literal(migraphx::literal{vars, variance_data});
p.add_instruction(migraphx::op::batch_norm_inference{}, x, scale, bias, mean, variance);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> result_vector(width * height * channels * batches);
......@@ -920,7 +920,7 @@ TEST_CASE(batch_norm_3d_test)
auto variance = p.add_literal(migraphx::literal{c_shape, variance_data});
p.add_instruction(migraphx::op::batch_norm_inference{}, x, scale, bias, mean, variance);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> result_vector;
result.visit([&](auto output) { result_vector.assign(output.begin(), output.end()); });
......@@ -951,7 +951,7 @@ TEST_CASE(im2col_3x3_with_channels_identity_test)
auto l_image = p.add_literal(migraphx::literal{s_image, input});
auto l_weights = p.add_literal(migraphx::literal{s_weights, weights});
p.add_instruction(migraphx::op::im2col{padding, stride, dilation}, l_image, l_weights);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1;
......@@ -967,7 +967,7 @@ TEST_CASE(exp_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
p.add_instruction(migraphx::op::exp{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -982,7 +982,7 @@ TEST_CASE(erf_test)
auto l =
p.add_literal(migraphx::literal{s, {0.73785057, 1.58165966, -0.43597795, -0.01677432}});
p.add_instruction(migraphx::op::erf{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -997,7 +997,7 @@ TEST_CASE(sqrt_test)
auto l = p.add_literal(
migraphx::literal{s, {1.02481645, 0.85643062, 0.03404123, 0.92791926, 0.10569184}});
p.add_instruction(migraphx::op::sqrt{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1012,7 +1012,7 @@ TEST_CASE(sign_test)
auto l = p.add_literal(
migraphx::literal{s, {1.02481645, 0.85643062, -0.03404123, -0.92791926, 0.0}});
p.add_instruction(migraphx::op::sign{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1026,7 +1026,7 @@ TEST_CASE(log_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {1, 2, 3}});
p.add_instruction(migraphx::op::log{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1041,7 +1041,7 @@ TEST_CASE(prelu_test)
auto x = p.add_literal(migraphx::literal{s, {-1, 0, 2}});
auto slope = p.add_literal(migraphx::literal{s, {2, 1, 2}});
p.add_instruction(migraphx::op::prelu{}, x, slope);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1056,7 +1056,7 @@ TEST_CASE(pow_test)
auto b = p.add_literal(migraphx::literal{s, {1, 2, 3}});
auto e = p.add_literal(migraphx::literal{s, {1, 2, 3}});
p.add_instruction(migraphx::op::pow{}, b, e);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1070,7 +1070,7 @@ TEST_CASE(sin_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
p.add_instruction(migraphx::op::sin{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1084,7 +1084,7 @@ TEST_CASE(cos_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
p.add_instruction(migraphx::op::cos{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1098,7 +1098,7 @@ TEST_CASE(tan_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
p.add_instruction(migraphx::op::tan{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1113,7 +1113,7 @@ TEST_CASE(asin_test)
std::vector<float> data{-0.5f, 0.0f, 0.9f};
auto l = p.add_literal(migraphx::literal{s, data});
p.add_instruction(migraphx::op::asin{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1128,7 +1128,7 @@ TEST_CASE(acos_test)
std::vector<float> data{-0.8f, 0.0f, 1.0f};
auto l = p.add_literal(migraphx::literal{s, data});
p.add_instruction(migraphx::op::acos{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1142,7 +1142,7 @@ TEST_CASE(atan_test)
migraphx::shape s{migraphx::shape::double_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
p.add_instruction(migraphx::op::atan{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1157,7 +1157,7 @@ TEST_CASE(asinh_test)
std::vector<float> data{-0.5f, 0.0f, 0.9f};
auto l = p.add_literal(migraphx::literal{s, data});
p.add_instruction(migraphx::op::asinh{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1172,7 +1172,7 @@ TEST_CASE(acosh_test)
std::vector<float> data{1.1f, 1.2f, 2.0f};
auto l = p.add_literal(migraphx::literal{s, data});
p.add_instruction(migraphx::op::acosh{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1186,7 +1186,7 @@ TEST_CASE(atanh_test)
migraphx::shape s{migraphx::shape::double_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {0.4435683, 0.6223626, 0.316958}});
p.add_instruction(migraphx::op::atanh{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1201,7 +1201,7 @@ TEST_CASE(add_test)
auto l1 = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
auto l2 = p.add_literal(migraphx::literal{s, {1, 2, 3}});
p.add_instruction(migraphx::op::add{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1220,7 +1220,7 @@ TEST_CASE(broadcast_test)
auto l1 = p.add_literal(migraphx::literal{a_shape, a_data});
auto l2 = p.add_literal(migraphx::literal{b_shape, b_data});
p.add_instruction(migraphx::op::broadcast{axis, l1->get_shape().lens()}, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
auto output = result.get<int32_t>();
EXPECT(output(0, 0) == -2);
......@@ -1241,7 +1241,7 @@ TEST_CASE(add_broadcast_test)
auto l2 = p.add_literal(migraphx::literal{b_shape, b_data});
auto l3 = p.add_instruction(migraphx::op::broadcast{axis, l1->get_shape().lens()}, l2);
p.add_instruction(migraphx::op::add{}, l1, l3);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape().packed());
std::vector<float> results_vector(12);
......@@ -1260,7 +1260,7 @@ TEST_CASE(add_broadcast_test)
auto l3 = p.add_instruction(migraphx::op::multibroadcast{{2, 2, 3}}, l1);
auto l4 = p.add_instruction(migraphx::op::multibroadcast{{2, 2, 3}}, l2);
p.add_instruction(migraphx::op::add{}, l3, l4);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
EXPECT(result.get_shape().packed());
std::vector<float> results_vector(12);
......@@ -1277,7 +1277,7 @@ TEST_CASE(sub_test)
auto l1 = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
auto l2 = p.add_literal(migraphx::literal{s, {1, 2, 3}});
p.add_instruction(migraphx::op::sub{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1292,7 +1292,7 @@ TEST_CASE(mul_test)
auto l1 = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
auto l2 = p.add_literal(migraphx::literal{s, {1, 2, 3}});
p.add_instruction(migraphx::op::mul{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1307,7 +1307,7 @@ TEST_CASE(div_test)
auto l1 = p.add_literal(migraphx::literal{s, {-1.0f, 0.5f, 1.0f}});
auto l2 = p.add_literal(migraphx::literal{s, {1.0f, 2.0f, 4.0f}});
p.add_instruction(migraphx::op::div{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1321,7 +1321,7 @@ TEST_CASE(relu_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1.f, 0.f, 1.f}});
p.add_instruction(migraphx::op::relu{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1335,7 +1335,7 @@ TEST_CASE(leaky_relu_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {-1.f, 0.f, 1.f}});
p.add_instruction(migraphx::op::leaky_relu{0.01}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1349,7 +1349,7 @@ TEST_CASE(lrn_test)
migraphx::shape s{migraphx::shape::float_type, {1, 5, 1, 1}};
auto l = p.add_literal(migraphx::literal{s, {-2.0f, 1.0f, 0.f, 1.0f, 2.0f}});
p.add_instruction(migraphx::op::lrn{0.0001, 0.75, 1, 5}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(5);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1383,7 +1383,7 @@ TEST_CASE(imagescaler_test)
migraphx::literal{migraphx::shape{migraphx::shape::float_type, {3}}, {0.01, 0.02, 0.03}});
auto bias_bcast = p.add_instruction(migraphx::op::broadcast{1, s.lens()}, bias_vals);
p.add_instruction(migraphx::op::add{}, img_scaled, bias_bcast);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(12);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1414,7 +1414,7 @@ TEST_CASE(reshape_test)
auto l = p.add_literal(migraphx::literal{a_shape, data});
std::vector<int64_t> new_shape = {8, 3, 1, 1};
p.add_instruction(migraphx::op::reshape{new_shape}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1425,7 +1425,7 @@ TEST_CASE(reshape_test)
auto l = p.add_literal(migraphx::literal{a_shape, data});
std::vector<int64_t> new_shape = {1, 3, 4, 2};
p.add_instruction(migraphx::op::reshape{new_shape}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1436,7 +1436,7 @@ TEST_CASE(reshape_test)
auto l = p.add_literal(migraphx::literal{a_shape, data});
std::vector<int64_t> new_shape = {1, 3, 4, 2};
p.add_instruction(migraphx::op::reshape{new_shape}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1488,7 +1488,7 @@ TEST_CASE(maxpool_test)
migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 6, 6}};
auto al = p.add_literal(migraphx::literal{a_shape, a});
p.add_instruction(migraphx::op::pooling{"max", {{0, 0}}, {{2, 2}}, {{3, 2}}}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(36);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1503,7 +1503,7 @@ TEST_CASE(softmax_simple_test)
migraphx::shape a_shape{migraphx::shape::float_type, {1, 2}};
auto al = p.add_literal(migraphx::literal{a_shape, a});
p.add_instruction(migraphx::op::softmax{1}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(2);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1562,7 +1562,7 @@ TEST_CASE(softmax_test)
migraphx::shape a_shape{migraphx::shape::float_type, {5, 3, 4, 2}};
auto al = p.add_literal(migraphx::literal{a_shape, a});
p.add_instruction(migraphx::op::softmax{}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(120);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1595,7 +1595,7 @@ TEST_CASE(logsoftmax_test_axis_0)
auto al = p.add_literal(migraphx::literal{a_shape, a});
int axis = 0;
p.add_instruction(migraphx::op::logsoftmax{axis}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1628,7 +1628,7 @@ TEST_CASE(logsoftmax_test_axis_1)
auto al = p.add_literal(migraphx::literal{a_shape, a});
int axis = 1;
p.add_instruction(migraphx::op::logsoftmax{axis}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1661,7 +1661,7 @@ TEST_CASE(logsoftmax_test_axis_2)
auto al = p.add_literal(migraphx::literal{a_shape, a});
int axis = 2;
p.add_instruction(migraphx::op::logsoftmax{axis}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1694,7 +1694,7 @@ TEST_CASE(logsoftmax_test_axis_3)
auto al = p.add_literal(migraphx::literal{a_shape, a});
int axis = 3;
p.add_instruction(migraphx::op::logsoftmax{axis}, al);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -1711,7 +1711,7 @@ TEST_CASE(argmax_test_0)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmax{0}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1729,7 +1729,7 @@ TEST_CASE(argmax_test_1)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmax{1}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1747,7 +1747,7 @@ TEST_CASE(argmax_test_neg_2)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmax{-2}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1765,7 +1765,7 @@ TEST_CASE(argmax_test_2)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmax{2}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1783,7 +1783,7 @@ TEST_CASE(argmin_test_0)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmin{0}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1801,7 +1801,7 @@ TEST_CASE(argmin_test_1)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmin{1}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1819,7 +1819,7 @@ TEST_CASE(argmin_test_2)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmin{2}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1837,7 +1837,7 @@ TEST_CASE(argmin_test_neg_1)
migraphx::shape data_shape{migraphx::shape::float_type, {2, 3, 4}};
auto dl = p.add_literal(migraphx::literal{data_shape, data});
p.add_instruction(migraphx::op::argmin{-1}, dl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
......@@ -1853,7 +1853,7 @@ TEST_CASE(neg_test)
auto input = p.add_literal(migraphx::literal(s, data));
auto ret = p.add_instruction(migraphx::op::neg{}, input);
p.add_return({ret});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> result_vector;
result.visit([&](auto output) { result_vector.assign(output.begin(), output.end()); });
......@@ -1917,7 +1917,7 @@ TEST_CASE(conv2d_test)
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::convolution{}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(16);
......@@ -1980,7 +1980,7 @@ TEST_CASE(conv3d_test)
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::convolution{{0, 0, 0}, {1, 1, 1}, {1, 1, 1}}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(16);
......@@ -2036,7 +2036,7 @@ TEST_CASE(conv2d_padding_test)
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::convolution{{{1, 1}}, {{1, 1}}}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(64);
......@@ -2097,7 +2097,7 @@ TEST_CASE(conv2d_padding_stride_test)
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::convolution{{{1, 1}}, {{2, 2}}}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(16);
......@@ -2119,7 +2119,7 @@ TEST_CASE(quant_conv2d_test)
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::quant_convolution{}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int32_t> s = {10197,
......@@ -2156,7 +2156,7 @@ TEST_CASE(quant_conv2d_padding_test)
std::iota(c.begin(), c.end(), 0);
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::quant_convolution{{{1, 1}}, {{1, 1}}}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int32_t> s = {
4521, 6753, 7014, 4635, 6858, 10197, 10548, 6939, 7830, 11601, 11952, 7839, 5007,
......@@ -2182,7 +2182,7 @@ TEST_CASE(quant_conv2d_padding_stride_test)
std::iota(c.begin(), c.end(), 0);
auto cl = p.add_literal(migraphx::literal{c_shape, c});
p.add_instruction(migraphx::op::quant_convolution{{{1, 1}}, {{2, 2}}}, al, cl);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int32_t> s = {4521,
......@@ -2220,7 +2220,7 @@ TEST_CASE(deconv_test)
auto w = p.add_literal(migraphx::literal{s, w_data});
p.add_instruction(migraphx::op::deconvolution{}, x, w);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -2241,7 +2241,7 @@ TEST_CASE(deconv_1d_test)
auto w = p.add_literal(migraphx::literal{s, w_data});
p.add_instruction(migraphx::op::deconvolution{{0}, {1}, {1}}, x, w);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -2285,7 +2285,7 @@ TEST_CASE(deconv_3d_test)
auto w = p.add_literal(migraphx::literal{s_2, w_data});
p.add_instruction(migraphx::op::deconvolution{{0, 0, 0}, {1, 1, 1}, {1, 1, 1}}, x, w);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
......@@ -2304,7 +2304,7 @@ TEST_CASE(transpose_test)
auto l = p.add_literal(migraphx::literal{a_shape, data});
std::vector<int64_t> perm = {0, 3, 1, 2};
p.add_instruction(migraphx::op::transpose{perm}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
result.visit([&](auto output) {
......@@ -2318,7 +2318,7 @@ TEST_CASE(transpose_test)
std::vector<int64_t> perm = {0, 3, 1, 2};
auto result = p.add_instruction(migraphx::op::transpose{perm}, l);
p.add_instruction(migraphx::op::contiguous{}, result);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result2 = p.eval({}).back();
std::vector<float> results_vector(12);
......@@ -2337,7 +2337,7 @@ TEST_CASE(contiguous_test)
migraphx::program p;
auto l = p.add_literal(migraphx::literal{a_shape, data});
p.add_instruction(migraphx::op::contiguous{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(12);
......@@ -2354,7 +2354,7 @@ TEST_CASE(identity_test)
std::vector<int> data{1, 2, 3, 4};
auto l = p.add_literal(migraphx::literal{s, data});
p.add_instruction(migraphx::op::identity{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2367,7 +2367,7 @@ TEST_CASE(abs_test)
migraphx::shape s{migraphx::shape::float_type, {2, 2}};
auto l = p.add_literal(migraphx::literal{s, {-1, 2, -3, 4}});
p.add_instruction(migraphx::op::abs{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2381,7 +2381,7 @@ TEST_CASE(sigmoid_test)
migraphx::shape s{migraphx::shape::float_type, {2, 2}};
auto l = p.add_literal(migraphx::literal{s, {-1, 2, -3, 4}});
p.add_instruction(migraphx::op::sigmoid{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2395,7 +2395,7 @@ TEST_CASE(sinh_test)
migraphx::shape s{migraphx::shape::float_type, {2, 2}};
auto l = p.add_literal(migraphx::literal{s, {-1.0, 2.0, -3.0, 4.0}});
p.add_instruction(migraphx::op::sinh{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2409,7 +2409,7 @@ TEST_CASE(cosh_test)
migraphx::shape s{migraphx::shape::float_type, {2, 2}};
auto l = p.add_literal(migraphx::literal{s, {-1.0, 2.0, -3.0, 4.0}});
p.add_instruction(migraphx::op::cosh{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2423,7 +2423,7 @@ TEST_CASE(tanh_test)
migraphx::shape s{migraphx::shape::float_type, {2, 2}};
auto l = p.add_literal(migraphx::literal{s, {-1.0, 2.0, -3.0, 4.0}});
p.add_instruction(migraphx::op::tanh{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2438,7 +2438,7 @@ TEST_CASE(elu_test)
auto l = p.add_literal(migraphx::literal{s, {-1.0, 2.0, -3.0, 4.0}});
float alpha = 0.5;
p.add_instruction(migraphx::op::elu{alpha}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2455,7 +2455,7 @@ TEST_CASE(max_test)
auto l2 = p.add_literal(migraphx::literal{s, {7, 5, 9}});
auto curr_max = p.add_instruction(migraphx::op::max{}, l0, l1);
p.add_instruction(migraphx::op::max{}, curr_max, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2472,7 +2472,7 @@ TEST_CASE(min_test)
auto l2 = p.add_literal(migraphx::literal{s, {7, 5, 9}});
auto curr_min = p.add_instruction(migraphx::op::min{}, l0, l1);
p.add_instruction(migraphx::op::min{}, curr_min, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2486,7 +2486,7 @@ TEST_CASE(pad_test)
migraphx::shape s{migraphx::shape::float_type, {2, 2}};
auto l0 = p.add_literal(migraphx::literal{s, {1, 2, 3, 4}});
p.add_instruction(migraphx::op::pad{{1, 1, 1, 1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2500,7 +2500,7 @@ TEST_CASE(pad_test_lowest_half)
migraphx::shape s{migraphx::shape::half_type, {2, 2}};
auto l0 = p.add_literal(migraphx::literal{s, {1, 2, 3, 4}});
p.add_instruction(migraphx::op::pad{{1, 1, 1, 1}, std::numeric_limits<float>::lowest()}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2515,7 +2515,7 @@ TEST_CASE(pad_test_highest_half)
migraphx::shape s{migraphx::shape::half_type, {2, 2}};
auto l0 = p.add_literal(migraphx::literal{s, {1, 2, 3, 4}});
p.add_instruction(migraphx::op::pad{{1, 1, 1, 1}, std::numeric_limits<float>::max()}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2534,7 +2534,7 @@ TEST_CASE(fp16_test)
auto l0 = p.add_literal(migraphx::literal{s, {a}});
auto l1 = p.add_literal(migraphx::literal{s, {b}});
p.add_instruction(migraphx::op::add{}, l0, l1);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<migraphx::half> results_vector(1);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2559,7 +2559,7 @@ TEST_CASE(fp32_fp16_test)
std::vector<float> gold_res = {2.0, 4.0, 6.0, 8.0, 10.0, 12.0};
auto p = create_program();
migraphx::quantize_fp16(p, op_names);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> res;
result.visit([&](auto output) { res.assign(output.begin(), output.end()); });
......@@ -2580,7 +2580,7 @@ TEST_CASE(clip_test)
min_val = p.add_instruction(migraphx::op::multibroadcast{{3}}, min_val);
max_val = p.add_instruction(migraphx::op::multibroadcast{{3}}, max_val);
p.add_instruction(migraphx::op::clip{}, l, min_val, max_val);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2595,7 +2595,7 @@ TEST_CASE(reduce_prod_axis0)
auto input = migraphx::literal{s, {1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 3, 2, 3}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_prod{{0}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2610,7 +2610,7 @@ TEST_CASE(reduce_sum_axis0)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_sum{{0}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2625,7 +2625,7 @@ TEST_CASE(reduce_sum_axis1)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_sum{{1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2640,7 +2640,7 @@ TEST_CASE(reduce_sum_axis2)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_sum{{2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2655,7 +2655,7 @@ TEST_CASE(reduce_sum_axis02)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_sum{{0, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2670,7 +2670,7 @@ TEST_CASE(reduce_sum_axis12)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_sum{{1, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2684,7 +2684,7 @@ TEST_CASE(rsqrt_test)
migraphx::shape s{migraphx::shape::float_type, {3}};
auto l = p.add_literal(migraphx::literal{s, {4.0, 16.0, 64.0}});
p.add_instruction(migraphx::op::rsqrt{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2699,7 +2699,7 @@ TEST_CASE(reduce_mean_axis1)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_mean{{1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2714,7 +2714,7 @@ TEST_CASE(reduce_mean_axis2)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_mean{{2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2729,7 +2729,7 @@ TEST_CASE(reduce_mean_axis02)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_mean{{0, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2744,7 +2744,7 @@ TEST_CASE(reduce_mean_axis12)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_mean{{1, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2759,7 +2759,7 @@ TEST_CASE(reduce_mean_int)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_mean{{1, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<int> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2774,7 +2774,7 @@ TEST_CASE(reduce_min_axis1)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_min{{1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2789,7 +2789,7 @@ TEST_CASE(reduce_min_axis02)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_min{{0, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2804,7 +2804,7 @@ TEST_CASE(reduce_min_axis12)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_min{{1, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2819,7 +2819,7 @@ TEST_CASE(reduce_max_axis0)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_max{{0}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2834,7 +2834,7 @@ TEST_CASE(reduce_max_axis01)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_max{{0, 1}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2849,7 +2849,7 @@ TEST_CASE(reduce_max_axis02)
auto input = migraphx::literal{s, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}};
auto l0 = p.add_literal(input);
p.add_instruction(migraphx::op::reduce_max{{0, 2}}, l0);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2864,7 +2864,7 @@ TEST_CASE(sqdiff_test)
auto l1 = p.add_literal(migraphx::literal{s, {-1, 0, 1}});
auto l2 = p.add_literal(migraphx::literal{s, {1, 2, 3}});
p.add_instruction(migraphx::op::sqdiff{}, l1, l2);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2878,7 +2878,7 @@ TEST_CASE(round_test)
migraphx::shape s{migraphx::shape::float_type, {9}};
auto l = p.add_literal(migraphx::literal{s, {1.1, 1.5, 1.6, -1.1, -1.5, -1.6, 0.0, 2.0, -2.0}});
p.add_instruction(migraphx::op::round{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2892,7 +2892,7 @@ TEST_CASE(ceil_test)
migraphx::shape s{migraphx::shape::float_type, {9}};
auto l = p.add_literal(migraphx::literal{s, {1.1, 1.5, 1.6, -1.1, -1.5, -1.6, 0.0, 2.0, -2.0}});
p.add_instruction(migraphx::op::ceil{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2906,7 +2906,7 @@ TEST_CASE(floor_test)
migraphx::shape s{migraphx::shape::float_type, {9}};
auto l = p.add_literal(migraphx::literal{s, {1.1, 1.5, 0.6, -1.1, -1.5, -0.6, 0.0, 2.0, -2.0}});
p.add_instruction(migraphx::op::floor{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2933,11 +2933,11 @@ TEST_CASE(op_capture)
p.add_instruction(migraphx::op::dot{}, pa, ps);
migraphx::program capture_p = p;
migraphx::target t = migraphx::cpu::target{};
migraphx::target t = migraphx::ref::target{};
migraphx::capture_arguments(capture_p, t, {"dot"});
p.compile(migraphx::cpu::target{});
capture_p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
capture_p.compile(migraphx::ref::target{});
auto cap_res = capture_p.eval({}).back();
auto res = p.eval({}).back();
......@@ -2957,7 +2957,7 @@ TEST_CASE(recip_test)
std::vector<float> data{-0.5f, 0.1f, 0.5f};
auto l = p.add_literal(migraphx::literal{s, data});
p.add_instruction(migraphx::op::recip{}, l);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2977,7 +2977,7 @@ TEST_CASE(equal_test)
auto r = p.add_instruction(migraphx::op::convert{migraphx::shape::bool_type}, eq);
p.add_return({r});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<bool> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -2998,7 +2998,7 @@ TEST_CASE(equal_brcst_test)
auto r = p.add_instruction(migraphx::op::convert{migraphx::shape::bool_type}, eq);
p.add_return({r});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<bool> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -3018,7 +3018,7 @@ TEST_CASE(greater_test)
auto r = p.add_instruction(migraphx::op::convert{migraphx::shape::bool_type}, gr);
p.add_return({r});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<bool> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -3039,7 +3039,7 @@ TEST_CASE(greater_brcst_test)
auto r = p.add_instruction(migraphx::op::convert{migraphx::shape::bool_type}, gr);
p.add_return({r});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<bool> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -3059,7 +3059,7 @@ TEST_CASE(less_test)
auto r = p.add_instruction(migraphx::op::convert{migraphx::shape::bool_type}, le);
p.add_return({r});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<bool> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......@@ -3080,7 +3080,7 @@ TEST_CASE(less_brcst_test)
auto r = p.add_instruction(migraphx::op::convert{migraphx::shape::bool_type}, le);
p.add_return({r});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto result = p.eval({}).back();
std::vector<bool> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
......
......@@ -9,7 +9,7 @@
#include <migraphx/op/undefined.hpp>
#include <migraphx/op/concat.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/onnx.hpp>
#include "test.hpp"
......@@ -85,7 +85,7 @@ TEST_CASE(rnn_forward)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.add_return({hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto res_hs = outputs.front();
......@@ -151,7 +151,7 @@ TEST_CASE(rnn_forward)
ih);
auto last_out = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.add_return({out_hs, last_out});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
......@@ -202,7 +202,7 @@ TEST_CASE(rnn_forward)
ih);
auto last_out = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.add_return({out_hs, last_out});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
......@@ -248,7 +248,7 @@ TEST_CASE(rnn_forward)
w,
r);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_output = p.eval({}).back();
std::vector<float> last_output_data;
......@@ -284,7 +284,7 @@ TEST_CASE(rnn_forward)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -365,7 +365,7 @@ TEST_CASE(rnn_reverse)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -409,7 +409,7 @@ TEST_CASE(rnn_reverse)
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_output = p.eval({}).back();
std::vector<float> last_output_data;
......@@ -453,7 +453,7 @@ TEST_CASE(rnn_reverse)
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.add_return({out_hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
std::vector<float> hs_data;
......@@ -507,7 +507,7 @@ TEST_CASE(rnn_reverse)
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.add_return({out_hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
std::vector<float> hs_data;
......@@ -606,7 +606,7 @@ TEST_CASE(rnn_bidirectional)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.add_return({out_hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto arg_hs = outputs.front();
......@@ -671,7 +671,7 @@ TEST_CASE(rnn_bidirectional)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.add_return({out_hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto arg_hs = outputs.front();
......@@ -727,7 +727,7 @@ TEST_CASE(rnn_bidirectional)
bias);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_output = p.eval({}).back();
std::vector<float> last_output_data;
......@@ -767,7 +767,7 @@ TEST_CASE(rnn_bidirectional)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_output = p.eval({}).back();
std::vector<float> last_output_data;
......@@ -804,7 +804,7 @@ TEST_CASE(rnn_bidirectional)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -907,7 +907,7 @@ TEST_CASE(gru_forward)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -944,7 +944,7 @@ TEST_CASE(gru_forward)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -986,7 +986,7 @@ TEST_CASE(gru_forward)
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1027,7 +1027,7 @@ TEST_CASE(gru_forward)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1119,7 +1119,7 @@ TEST_CASE(gru_forward_args)
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1151,7 +1151,7 @@ TEST_CASE(gru_forward_args)
r,
bias);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1186,7 +1186,7 @@ TEST_CASE(gru_forward_args)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1277,7 +1277,7 @@ TEST_CASE(gru_forward_actv_funcs)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1316,7 +1316,7 @@ TEST_CASE(gru_forward_actv_funcs)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1350,7 +1350,7 @@ TEST_CASE(gru_forward_actv_funcs)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1394,7 +1394,7 @@ TEST_CASE(gru_forward_actv_funcs)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1494,7 +1494,7 @@ TEST_CASE(gru_reverse)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.add_return({lho, hs});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto res_hs = outputs.back();
......@@ -1551,7 +1551,7 @@ TEST_CASE(gru_reverse)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.add_return({lho, hs});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto res_hs = outputs.back();
......@@ -1603,7 +1603,7 @@ TEST_CASE(gru_reverse)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1639,7 +1639,7 @@ TEST_CASE(gru_reverse)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1679,7 +1679,7 @@ TEST_CASE(gru_reverse)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -1797,7 +1797,7 @@ TEST_CASE(gru_bidirectional)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.add_return({hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto hs_concat = outputs.front();
auto res_lho = outputs.back();
......@@ -1855,7 +1855,7 @@ TEST_CASE(gru_bidirectional)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.add_return({concat_hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto hs_concat = outputs.front();
auto res_lho = outputs.back();
......@@ -1915,7 +1915,7 @@ TEST_CASE(gru_bidirectional)
ih);
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.add_return({concat_hs, lho});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto hs_concat = outputs.front();
auto res_lho = outputs.back();
......@@ -1965,7 +1965,7 @@ TEST_CASE(gru_bidirectional)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2069,7 +2069,7 @@ TEST_CASE(gru_bidirectional_args)
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2105,7 +2105,7 @@ TEST_CASE(gru_bidirectional_args)
r,
bias);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2144,7 +2144,7 @@ TEST_CASE(gru_bidirectional_args)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2256,7 +2256,7 @@ TEST_CASE(gru_bidirectional_actv_funcs)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2289,7 +2289,7 @@ TEST_CASE(gru_bidirectional_actv_funcs)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2326,7 +2326,7 @@ TEST_CASE(gru_bidirectional_actv_funcs)
bias,
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2367,7 +2367,7 @@ TEST_CASE(gru_bidirectional_actv_funcs)
und,
ih);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, concat_hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2403,7 +2403,7 @@ TEST_CASE(gru_bidirectional_actv_funcs)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2447,7 +2447,7 @@ TEST_CASE(gru_bidirectional_actv_funcs)
und,
ih);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
hs_concat.visit([&](auto output) { hs_data.assign(output.begin(), output.end()); });
......@@ -2570,7 +2570,7 @@ TEST_CASE(lstm_forward)
ih,
ic,
und);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
......@@ -2614,7 +2614,7 @@ TEST_CASE(lstm_forward)
ic,
und);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_hs = p.eval({}).back();
std::vector<float> output_data;
......@@ -2662,7 +2662,7 @@ TEST_CASE(lstm_forward)
ic,
und);
p.add_instruction(migraphx::op::rnn_last_cell_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_hs = p.eval({}).back();
std::vector<float> output_data;
......@@ -2783,7 +2783,7 @@ TEST_CASE(lstm_forward_more)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_hs = p.eval({}).back();
std::vector<float> output_data;
......@@ -2827,7 +2827,7 @@ TEST_CASE(lstm_forward_more)
ih,
ic,
pph);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
......@@ -2880,7 +2880,7 @@ TEST_CASE(lstm_forward_more)
ic,
und);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto last_hs = p.eval({}).back();
std::vector<float> output_data;
......@@ -2933,7 +2933,7 @@ TEST_CASE(lstm_forward_more)
ic,
pph);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> hs_data;
......@@ -3064,7 +3064,7 @@ TEST_CASE(lstm_reverse)
ih,
ic,
pph);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3113,7 +3113,7 @@ TEST_CASE(lstm_reverse)
ih,
ic,
pph);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3162,7 +3162,7 @@ TEST_CASE(lstm_reverse)
ih,
ic,
pph);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3195,7 +3195,7 @@ TEST_CASE(lstm_reverse)
r);
p.add_instruction(migraphx::op::rnn_last_cell_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3227,7 +3227,7 @@ TEST_CASE(lstm_reverse)
r);
p.add_instruction(migraphx::op::rnn_last_cell_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3344,7 +3344,7 @@ TEST_CASE(lstm_reverse_actv)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3375,7 +3375,7 @@ TEST_CASE(lstm_reverse_actv)
w,
r);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3416,7 +3416,7 @@ TEST_CASE(lstm_reverse_actv)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3535,7 +3535,7 @@ TEST_CASE(lstm_bidirectional)
ih,
ic,
pph);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3584,7 +3584,7 @@ TEST_CASE(lstm_bidirectional)
ic,
pph);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3622,7 +3622,7 @@ TEST_CASE(lstm_bidirectional)
ic,
pph);
p.add_instruction(migraphx::op::rnn_last_cell_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3649,7 +3649,7 @@ TEST_CASE(lstm_bidirectional)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3691,7 +3691,7 @@ TEST_CASE(lstm_bidirectional)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -3809,7 +3809,7 @@ TEST_CASE(lstm_bidirectional_var_seq_lens)
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, out_hs);
auto lco = p.add_instruction(migraphx::op::rnn_last_cell_output{}, out_hs);
p.add_return({out_hs, lho, lco});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto arg_hs = outputs.front();
......@@ -3888,7 +3888,7 @@ TEST_CASE(lstm_bidirectional_var_seq_lens)
auto lho = p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
auto lco = p.add_instruction(migraphx::op::rnn_last_cell_output{}, hs);
p.add_return({hs, lho, lco});
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto outputs = p.eval({});
auto res_hs = outputs.at(0);
auto res_lho = outputs.at(1);
......@@ -3991,7 +3991,7 @@ TEST_CASE(lstm_bidirectional_actv_func)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -4027,7 +4027,7 @@ TEST_CASE(lstm_bidirectional_actv_func)
seq,
w,
r);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -4063,7 +4063,7 @@ TEST_CASE(lstm_bidirectional_actv_func)
w,
r);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -4093,7 +4093,7 @@ TEST_CASE(lstm_bidirectional_actv_func)
w,
r);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -4124,7 +4124,7 @@ TEST_CASE(lstm_bidirectional_actv_func)
w,
r);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......@@ -4156,7 +4156,7 @@ TEST_CASE(lstm_bidirectional_actv_func)
w,
r);
p.add_instruction(migraphx::op::rnn_last_hs_output{}, hs);
p.compile(migraphx::cpu::target{});
p.compile(migraphx::ref::target{});
auto hs_concat = p.eval({}).back();
std::vector<float> output_data;
hs_concat.visit([&](auto output) { output_data.assign(output.begin(), output.end()); });
......
#include <migraphx/rewrite_batchnorm.hpp>
#include <migraphx/program.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/op/convolution.hpp>
#include <migraphx/op/reshape.hpp>
#include <migraphx/op/batch_norm_inference.hpp>
......@@ -58,8 +58,8 @@ TEST_CASE(fwd_conv_batchnorm_rewrite_test)
migraphx::program p2 = create_program();
migraphx::rewrite_batchnorm opt;
opt.apply(p2);
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
......@@ -126,8 +126,8 @@ TEST_CASE(as_literal)
EXPECT(any_of(p1, &is_batch_norm));
EXPECT(none_of(p2, &is_batch_norm));
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
......@@ -159,8 +159,8 @@ TEST_CASE(as_literal_1d)
EXPECT(any_of(p1, &is_batch_norm));
EXPECT(none_of(p2, &is_batch_norm));
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
......@@ -197,8 +197,8 @@ TEST_CASE(as_literal_3d)
EXPECT(any_of(p1, &is_batch_norm));
EXPECT(none_of(p2, &is_batch_norm));
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
......@@ -231,8 +231,8 @@ TEST_CASE(literal_reshape)
EXPECT(any_of(p1, &is_batch_norm));
EXPECT(none_of(p2, &is_batch_norm));
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
......@@ -273,8 +273,8 @@ TEST_CASE(literal_reshape_per_actv)
EXPECT(any_of(p1, &is_batch_norm));
EXPECT(none_of(p2, &is_batch_norm));
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
......
#include <migraphx/rewrite_pooling.hpp>
#include <migraphx/dead_code_elimination.hpp>
#include <migraphx/program.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/op/reshape.hpp>
#include <migraphx/op/pooling.hpp>
#include <migraphx/op/reduce_mean.hpp>
......@@ -137,8 +137,8 @@ TEST_CASE(literal_rewrite_pooling_test)
auto test_rewrite_pooling = [&](const std::string& mode, const migraphx::operation& op) {
migraphx::program p1 = pooling_program(mode);
migraphx::program p2 = opt_program(op);
p1.compile(migraphx::cpu::target{});
p2.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
p2.compile(migraphx::ref::target{});
auto result1 = p1.eval({}).back();
auto result2 = p2.eval({}).back();
visit_all(result1,
......
#include <migraphx/program.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/load_save.hpp>
#include <migraphx/op/add.hpp>
#include "test.hpp"
......@@ -57,7 +57,7 @@ TEST_CASE(as_file)
TEST_CASE(compiled)
{
migraphx::program p1 = create_program();
p1.compile(migraphx::cpu::target{});
p1.compile(migraphx::ref::target{});
std::vector<char> buffer = migraphx::save_buffer(p1);
migraphx::program p2 = migraphx::load_buffer(buffer);
EXPECT(p1.sort() == p2.sort());
......
#include <migraphx/register_target.hpp>
#include <migraphx/cpu/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/target.hpp>
#include "test.hpp"
......
file(GLOB VERIFY_TESTS *.cpp)
add_executable(test_verify ${VERIFY_TESTS})
add_dependencies(tests test_verify)
add_dependencies(check test_verify)
target_link_libraries(test_verify migraphx migraphx_all_targets)
target_include_directories(test_verify PUBLIC ../include)
rocm_clang_tidy_check(test_verify)
foreach(SECTION general rnn)
add_test_command(test_verify_${SECTION} test_verify ${SECTION})
set_tests_properties(test_verify_${SECTION} PROPERTIES
COST 100
)
if(MIGRAPHX_ENABLE_GPU)
set_tests_properties(test_verify_${SECTION} PROPERTIES
RESOURCE_LOCK gpu
)
endif()
endforeach()
#include "auto_print.hpp"
#include <map>
#include <exception>
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wglobal-constructors"
#endif
using handler_map = std::map<std::string, std::function<void()>>;
static handler_map create_handlers()
{
handler_map m;
for(const auto& name : migraphx::get_targets())
m[name] = [] {};
return m;
}
std::function<void()>& auto_print::get_handler(const std::string& name)
{
// NOLINTNEXTLINE
static handler_map handlers = create_handlers();
return handlers.at(name);
}
void auto_print::set_terminate_handler(const std::string& name)
{
// NOLINTNEXTLINE
static std::string pname;
pname = name;
std::set_terminate(+[] {
std::cout << "FAILED: " << pname << std::endl;
try
{
std::rethrow_exception(std::current_exception());
}
catch(const std::exception& e)
{
std::cout << " what(): " << e.what() << std::endl;
}
std::cout << std::endl;
for(const auto& tname : migraphx::get_targets())
get_handler(tname)();
});
}
#ifndef MIGRAPHX_GUARD_TEST_AUTO_PRINT_HPP
#define MIGRAPHX_GUARD_TEST_AUTO_PRINT_HPP
#include <migraphx/register_target.hpp>
#include <functional>
struct auto_print
{
static std::function<void()>& get_handler(const std::string& name);
static void set_terminate_handler(const std::string& name);
std::string name;
template <class T>
auto_print(T& x, std::string s) : name(std::move(s))
{
get_handler(name) = [&x] { std::cout << x << std::endl; };
}
~auto_print()
{
get_handler(name) = [] {};
}
};
#endif
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct batch_quant_dot_1 : verify_program<batch_quant_dot_1>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::int8_type, {3, 2, 8, 2}};
migraphx::shape m2_shape{migraphx::shape::int8_type, {3, 2, 7, 8}};
migraphx::shape m3_shape{migraphx::shape::int32_type, {3, 2, 2, 7}};
auto l1 = p.add_parameter("a", m1_shape);
auto tl1 = p.add_instruction(migraphx::op::transpose{{0, 1, 3, 2}}, l1);
auto l2 = p.add_parameter("b", m2_shape);
auto tl2 = p.add_instruction(migraphx::op::transpose{{0, 1, 3, 2}}, l2);
auto l3 = p.add_parameter("c", m3_shape);
p.add_instruction(migraphx::op::quant_dot{3, 2}, tl1, tl2, l3);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct batch_quant_dot_2 : verify_program<batch_quant_dot_2>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::int8_type, {3, 2, 2, 8}};
migraphx::shape m2_shape{migraphx::shape::int8_type, {3, 2, 8, 7}};
migraphx::shape m3_shape{migraphx::shape::int32_type, {3, 2, 2, 7}};
auto l1 = p.add_parameter("a", m1_shape);
auto l2 = p.add_parameter("b", m2_shape);
auto l3 = p.add_parameter("c", m3_shape);
p.add_instruction(migraphx::op::quant_dot{1, 3}, l1, l2, l3);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_bmv : verify_program<gemm_2args_bmv>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {2, 3, 3, 5}};
migraphx::shape m2_shape{migraphx::shape::float_type, {5}};
auto l1 = p.add_parameter("1", m1_shape);
auto l2 = p.add_parameter("2", m2_shape);
auto ul2 = p.add_instruction(migraphx::op::unsqueeze{{1}}, l2);
auto bul2 = p.add_instruction(migraphx::op::multibroadcast{{2, 3, 5, 1}}, ul2);
p.add_instruction(migraphx::op::dot{}, l1, bul2);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_mm_1 : verify_program<gemm_2args_mm_1>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {2, 2, 3}};
migraphx::shape m2_shape{migraphx::shape::float_type, {1, 3, 4}};
auto l1 = p.add_parameter("1", m1_shape);
auto l2 = p.add_parameter("2", m2_shape);
auto bl2 = p.add_instruction(migraphx::op::multibroadcast{{2, 3, 4}}, l2);
p.add_instruction(migraphx::op::dot{}, l1, bl2);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_mm_2 : verify_program<gemm_2args_mm_2>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {2, 2, 3}};
migraphx::shape m2_shape{migraphx::shape::float_type, {3, 4}};
auto l1 = p.add_parameter("1", m1_shape);
auto l2 = p.add_parameter("2", m2_shape);
auto bl2 = p.add_instruction(migraphx::op::multibroadcast{{2, 3, 4}}, l2);
p.add_instruction(migraphx::op::dot{}, l1, bl2);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_mm_3 : verify_program<gemm_2args_mm_3>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {1, 2, 3}};
migraphx::shape m2_shape{migraphx::shape::float_type, {3, 3, 4}};
auto l1 = p.add_parameter("1", m1_shape);
auto bl1 = p.add_instruction(migraphx::op::multibroadcast{{3, 2, 3}}, l1);
auto l2 = p.add_parameter("2", m2_shape);
p.add_instruction(migraphx::op::dot{}, bl1, l2);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_mm_4 : verify_program<gemm_2args_mm_4>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {2, 3}};
migraphx::shape m2_shape{migraphx::shape::float_type, {3, 3, 4}};
auto l1 = p.add_parameter("1", m1_shape);
auto bl1 = p.add_instruction(migraphx::op::multibroadcast{{3, 2, 3}}, l1);
auto l2 = p.add_parameter("2", m2_shape);
p.add_instruction(migraphx::op::dot{}, bl1, l2);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_mm_5 : verify_program<gemm_2args_mm_5>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {2, 1, 2, 3}};
migraphx::shape m2_shape{migraphx::shape::float_type, {2, 3, 3, 4}};
auto l1 = p.add_parameter("1", m1_shape);
auto bl1 = p.add_instruction(migraphx::op::multibroadcast{{2, 3, 2, 3}}, l1);
auto l2 = p.add_parameter("2", m2_shape);
p.add_instruction(migraphx::op::dot{}, bl1, l2);
return p;
}
};
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/operators.hpp>
struct gemm_2args_mm_6 : verify_program<gemm_2args_mm_6>
{
migraphx::program create_program() const
{
migraphx::program p;
migraphx::shape m1_shape{migraphx::shape::float_type, {2, 1, 2, 3}};
migraphx::shape m2_shape{migraphx::shape::float_type, {1, 3, 3, 4}};
auto l1 = p.add_parameter("1", m1_shape);
auto bl1 = p.add_instruction(migraphx::op::multibroadcast{{2, 3, 2, 3}}, l1);
auto l2 = p.add_parameter("2", m2_shape);
auto bl2 = p.add_instruction(migraphx::op::multibroadcast{{2, 3, 3, 4}}, l2);
p.add_instruction(migraphx::op::dot{}, bl1, bl2);
return p;
}
};
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment