"src/git@developer.sourcefind.cn:gaoqiong/migraphx.git" did not exist on "a0b570b2b963d45907b283ef10bdff2022c33b0f"
Commit c45afff0 authored by Paul's avatar Paul
Browse files

Add some memory output

parent f6e22d56
...@@ -65,6 +65,32 @@ void run_pass(program& prog, const pass& p, tracer trace) ...@@ -65,6 +65,32 @@ void run_pass(program& prog, const pass& p, tracer trace)
trace(prog); trace(prog);
} }
std::size_t get_size(const program& p)
{
std::size_t n = 0;
for(auto* mod:p.get_modules()) {
for(const auto& ins:*mod) {
if (ins.name() != "@literal")
continue;
n += ins.get_literal().get_shape().bytes();
}
}
return n;
}
std::string pretty_size(std::size_t n)
{
const std::vector<std::string> keys = {"", "K", "M", "G", "T"};
double d = n;
std::size_t i = 0;
while(d > 1024 and i < keys.size())
{
d /= 1024;
i++;
}
return std::to_string(d) + keys[std::max<std::ptrdiff_t>(0, i - 1)];
}
struct module_pm : module_pass_manager struct module_pm : module_pass_manager
{ {
module* mod = nullptr; module* mod = nullptr;
...@@ -139,6 +165,7 @@ void run_passes(program& prog, const std::vector<pass>& passes, tracer trace) ...@@ -139,6 +165,7 @@ void run_passes(program& prog, const std::vector<pass>& passes, tracer trace)
std::unordered_set<module_ref> visited; std::unordered_set<module_ref> visited;
for(const auto& p : passes) for(const auto& p : passes)
{ {
std::cout << p.name() << ": " << pretty_size(get_size(prog)) << std::endl;
auto mods = prog.get_modules(); auto mods = prog.get_modules();
auto tree = prog.get_module_tree(); auto tree = prog.get_module_tree();
visited.clear(); visited.clear();
...@@ -163,6 +190,7 @@ void run_passes(program& prog, const std::vector<pass>& passes, tracer trace) ...@@ -163,6 +190,7 @@ void run_passes(program& prog, const std::vector<pass>& passes, tracer trace)
mpm.run_pass(p); mpm.run_pass(p);
} }
run_pass(prog, p, trace); run_pass(prog, p, trace);
std::cout << p.name() << ": " << pretty_size(get_size(prog)) << std::endl;
} }
} }
......
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