Commit 073adbfb authored by Robert Kimball's avatar Robert Kimball

buffer pool allocation added

parent b556db1f
......@@ -67,7 +67,10 @@
#include "ngraph/ops/tanh.hpp"
#include "ngraph/ops/tuple.hpp"
#include "ngraph/pass/assign_layout.hpp"
#include "ngraph/pass/liveness.hpp"
#include "ngraph/pass/manager.hpp"
#include "ngraph/pass/memory_layout.hpp"
#include "ngraph/pass/propagate_types.hpp"
#include "ngraph/pass/topological_sort.hpp"
#include "ngraph/runtime/cpu/call_frame.hpp"
#include "ngraph/runtime/cpu/emitter.hpp"
......@@ -179,6 +182,8 @@ void ExternalFunction::compile(FunctionMap& function_map)
pass_manager.register_pass<pass::TopologicalSort>();
// For now, just make everyone row-major.
pass_manager.register_pass<pass::AssignLayout<DenseTensorViewLayout>>();
pass_manager.register_pass<pass::Liveness>();
pass_manager.register_pass<pass::MemoryLayout>();
pass_manager.run_passes(m_function);
// Determine tensor requirements for the call frame
......@@ -241,6 +246,9 @@ using namespace ngraph::element;
using namespace ngraph::runtime;
using namespace ngraph::runtime::cpu::eigen;
extern "C" void allocate_aligned_buffer(size_t size, size_t alignment, char** allocated, char** aligned_ptr);
extern "C" void free_aligned_buffer(void* allocated);
extern "C" void __entrypoint(ngraph::runtime::cpu::CallFrame* call_frame,
ngraph::runtime::TensorViewPtrs& tensor_views,
......@@ -248,6 +256,30 @@ extern "C" void __entrypoint(ngraph::runtime::cpu::CallFrame* call_frame,
{
)";
TU.indent++;
TU << "// Allocate the memory pool\n";
size_t temp_pool_size = pass_manager.get_state().get_temporary_pool_size();
TU << "char* allocated_buffer_pool;\n";
TU << "char* aligned_buffer_pool;\n";
TU << "allocate_aligned_buffer(" << temp_pool_size << ", 64"
<< ", &allocated_buffer_pool, &aligned_buffer_pool);\n";
TU << "\n";
TU << "// Define tensors\n";
// for (shared_ptr<Node> node : m_function->get_ordered_ops())
// {
// NGRAPH_INFO << *node;
// for (descriptor::Tensor* tensor : node->liveness_new_list)
// {
// NGRAPH_INFO << *tensor;
// }
// }
TU << "\n";
TU << "// Define tensor views\n";
TU << "\n";
TU.indent--;
for (shared_ptr<Node> node : m_function->get_ordered_ops())
{
auto& n = *node; // Work around a compiler warning (*node inside typeid may have effects
......
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