Commit 68ee7589 authored by Shucai Xiao's avatar Shucai Xiao
Browse files

fixed an overflow problem in the gpu test examples.

parent ace3ca0d
......@@ -82,6 +82,14 @@ auto get_hash(const T& x)
return std::hash<T>{}(x);
}
// add an overload function for int type
// to avoid overflow in test examples
inline
auto get_hash(const int& x)
{
return std::hash<int>{}(x) / 64;
}
void compile_check(migraphx::program& p, const migraphx::target& t)
{
auto name = t.name();
......@@ -1263,12 +1271,11 @@ struct quant_dot_3args_2 : verify_program<quant_dot_3args_2>
migraphx::shape m1_shape{migraphx::shape::int8_type, {8, 2}};
migraphx::shape m2_shape{migraphx::shape::int8_type, {8, 7}};
migraphx::shape m3_shape{migraphx::shape::int32_type, {2, 7}};
std::vector<int> m3_data(2 * 7, 1);
auto l1 = p.add_parameter("a", m1_shape);
auto tl1 = p.add_instruction(migraphx::op::transpose{{1, 0}}, l1);
auto l2 = p.add_parameter("b", m2_shape);
auto l3 = p.add_literal(m3_shape, m3_data);
auto l3 = p.add_parameter("c", m3_shape);
p.add_instruction(migraphx::op::quant_dot{1, 3}, tl1, l2, l3);
return p;
}
......@@ -1282,12 +1289,11 @@ struct quant_dot_3args_3 : verify_program<quant_dot_3args_3>
migraphx::shape m1_shape{migraphx::shape::int8_type, {2, 8}};
migraphx::shape m2_shape{migraphx::shape::int8_type, {7, 8}};
migraphx::shape m3_shape{migraphx::shape::int32_type, {2, 7}};
std::vector<int> m3_data(2 * 7, 1);
auto l1 = p.add_parameter("a", m1_shape);
auto l2 = p.add_parameter("b", m2_shape);
auto tl2 = p.add_instruction(migraphx::op::transpose{{1, 0}}, l2);
auto l3 = p.add_literal(m3_shape, m3_data);
auto l3 = p.add_parameter("c", m3_shape);
p.add_instruction(migraphx::op::quant_dot{2, 3}, l1, tl2, l3);
return p;
}
......@@ -1301,13 +1307,12 @@ struct quant_dot_3args_4 : verify_program<quant_dot_3args_4>
migraphx::shape m1_shape{migraphx::shape::int8_type, {8, 2}};
migraphx::shape m2_shape{migraphx::shape::int8_type, {7, 8}};
migraphx::shape m3_shape{migraphx::shape::int32_type, {2, 7}};
std::vector<int> m3_data(2 * 7, 1);
auto l1 = p.add_parameter("a", m1_shape);
auto tl1 = p.add_instruction(migraphx::op::transpose{{1, 0}}, l1);
auto l2 = p.add_parameter("b", m2_shape);
auto tl2 = p.add_instruction(migraphx::op::transpose{{1, 0}}, l2);
auto l3 = p.add_literal(m3_shape, m3_data);
auto l3 = p.add_parameter("c", m3_shape);
p.add_instruction(migraphx::op::quant_dot{3, 2}, tl1, tl2, l3);
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