"src/include/rtg/tensor_view.hpp" did not exist on "83aa9ac32c27e93e56dcd83a66f9782c3fba29d3"
Commit e46a1cb2 authored by Paul's avatar Paul
Browse files

Formatting

parent 4008675f
...@@ -56,31 +56,33 @@ struct stream_info ...@@ -56,31 +56,33 @@ struct stream_info
auto compare = by(std::less<>{}, [&](auto x) { auto compare = by(std::less<>{}, [&](auto x) {
return std::make_tuple(this->weights[x], x->inputs().size()); return std::make_tuple(this->weights[x], x->inputs().size());
}); });
if (args.size() < 2) if(args.size() < 2)
{ {
return args.end(); return args.end();
} }
else if (args.size() == 2) else if(args.size() == 2)
{ {
auto w1 = this->weights[args[0]]; auto w1 = this->weights[args[0]];
auto w2 = this->weights[args[1]]; auto w2 = this->weights[args[1]];
if (std::make_tuple(w1, args[0]->inputs().size()) > std::make_tuple(w2, args[1]->inputs().size())) if(std::make_tuple(w1, args[0]->inputs().size()) >
std::make_tuple(w2, args[1]->inputs().size()))
{ {
std::swap(args[0], args[1]); std::swap(args[0], args[1]);
std::swap(w1, w2); std::swap(w1, w2);
} }
if (w1 > min_partition_threshold) if(w1 > min_partition_threshold)
return args.begin(); return args.begin();
if (w2 > min_partition_threshold) if(w2 > min_partition_threshold)
return args.begin()+1; return args.begin() + 1;
return args.end(); return args.end();
} }
std::sort(args.begin(), args.end(), compare); std::sort(args.begin(), args.end(), compare);
return std::upper_bound(args.begin(), args.end(), min_partition_threshold, [&](std::size_t w, auto i) { return std::upper_bound(args.begin(),
return w < this->weights[i]; args.end(),
}); min_partition_threshold,
[&](std::size_t w, auto i) { return w < this->weights[i]; });
} }
struct partition struct partition
...@@ -101,20 +103,20 @@ struct stream_info ...@@ -101,20 +103,20 @@ struct stream_info
std::unordered_map<instruction_ref, std::deque<partition>> partitions; std::unordered_map<instruction_ref, std::deque<partition>> partitions;
partitions.reserve(weights.size()); partitions.reserve(weights.size());
fix([&](auto self, auto ins, auto& part) { fix([&](auto self, auto ins, auto& part) {
if (contains(partitions, ins)) if(contains(partitions, ins))
return; return;
partitions[ins]; partitions[ins];
part.add(ins, this->iweights[ins]); part.add(ins, this->iweights[ins]);
auto args = ins->inputs(); auto args = ins->inputs();
auto threshold_it = sort_args(args); auto threshold_it = sort_args(args);
for(auto i:range(args.begin(), threshold_it)) for(auto i : range(args.begin(), threshold_it))
{ {
self(i, part); self(i, part);
} }
for(auto i:range(threshold_it, args.end())) for(auto i : range(threshold_it, args.end()))
{ {
if (i == args.back()) if(i == args.back())
{ {
self(i, part); self(i, part);
} }
...@@ -392,9 +394,9 @@ void schedule::apply(program& p) const ...@@ -392,9 +394,9 @@ void schedule::apply(program& p) const
dfor(merge.second.size(), merge.second.size())([&](auto i, auto j) { dfor(merge.second.size(), merge.second.size())([&](auto i, auto j) {
if(i == j) if(i == j)
return; return;
if (merge.second[i].empty()) if(merge.second[i].empty())
return; return;
if (merge.second[j].empty()) if(merge.second[j].empty())
return; return;
for(auto ins1 : merge.second[i]) for(auto ins1 : merge.second[i])
{ {
......
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