MCPcopy Create free account
hub / github.com/ROCm/AMDMIGraphX / simplify

Method simplify

src/shape_transform_descriptor.cpp:1002–1031  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1000}
1001
1002void dimension::simplify()
1003{
1004 if(subdimensions.size() < 2)
1005 return;
1006 remove_1_sub_dims(subdimensions);
1007 // Flatten adjacent dimensions
1008 adjacent_for_each(subdimensions.begin(), subdimensions.end(), [&](sub& d1, sub& d2) {
1009 if(d1.origin_axis().size() < 2)
1010 return;
1011 if(d2.origin_axis().size() < 2)
1012 return;
1013 if(d1.has_hidden_axis() != d2.has_hidden_axis())
1014 return;
1015 if(not std::equal(d1.origin_axis().begin(),
1016 d1.origin_axis().end() - 1,
1017 d2.origin_axis().begin(),
1018 d2.origin_axis().end() - 1))
1019 return;
1020 auto a1 = d1.origin_axis().back();
1021 auto a2 = d2.origin_axis().back();
1022 assert(a2 != a1);
1023 if(a2 <= a1)
1024 return;
1025 if((a2 - a1) != 1)
1026 return;
1027 d2.len = d1.len * d2.len;
1028 d1.len = 1;
1029 });
1030 remove_1_sub_dims(subdimensions);
1031}
1032
1033// Search all subdimensions and return the subdimensions vector, an iterator
1034// to the subdimension found and an optional iterator to the previous

Callers 7

make_simple_descriptorFunction · 0.80
TEST_CASEFunction · 0.80
createMethod · 0.80
to_common_from_srcMethod · 0.80
to_dst_from_commonMethod · 0.80
to_src_from_commonMethod · 0.80
applyMethod · 0.80

Calls 15

remove_1_sub_dimsFunction · 0.85
adjacent_for_eachFunction · 0.85
remove_scalar_axisFunction · 0.85
group_axesFunction · 0.85
insert_empty_1sFunction · 0.85
remove_split_hidden_axesFunction · 0.85
fill_split_hidden_axesFunction · 0.85
renumber_axesFunction · 0.85
find_missing_axesFunction · 0.85
find_broadcasted_dimsFunction · 0.85
set_broadcast_dimFunction · 0.85

Tested by

no test coverage detected