29 : _optim_vars_count{optim_vars_count}
39 const auto vars_capacity =
_mem_planner->capacity() * _optim_vars_count;
40 _var_mem_alloc = std::make_shared<basic::Allocator>(vars_capacity);
44 uint32_t pos_var)
const
47 const auto var_offset = pos_var *
_mem_planner->capacity();
48 const auto &mem_blk =
_mem_planner->memory_plans().at(ind);
49 return _var_mem_alloc->base() + var_offset + mem_blk.offset;
64DisposableMemoryManager::createMemoryPlanner(
const std::string planner_id)
71 _mem_planner->claim(ind,
size);
76 _mem_planner->release(ind);
81 _mem_alloc = std::make_shared<basic::Allocator>(_mem_planner->capacity());
82 assert(_mem_alloc->base());
87 assert(_mem_planner->memory_plans().find(ind) != _mem_planner->memory_plans().end());
88 const auto &mem_blk = _mem_planner->memory_plans().at(ind);
89 return _mem_alloc->base() + mem_blk.offset;
105 _mem_alloc = std::make_shared<basic::Allocator>(_mem_planner->capacity());
106 assert(_mem_alloc->base());
111 assert(_mem_planner->memory_plans().find(ind) != _mem_planner->memory_plans().end());
112 const auto &mem_blk = _mem_planner->memory_plans().at(ind);
113 return _mem_alloc->base() + mem_blk.offset;
120 _mem_planner->claim(ind,
size);
125 _mem_planner->release(ind);
std::shared_ptr< Allocator > _mem_alloc
std::shared_ptr< IMemoryPlanner< ir::OperandIndex > > _mem_planner
DisposableMemoryManager()
void releasePlan(const DisposableTensorIndex &ind)
uint8_t * getBuffer(const DisposableTensorIndex &ind) const
void claimPlan(const DisposableTensorIndex &ind, uint32_t size)
Class that is index of DisposableTensor.
void claimPlan(const LayerScopeTensorIndex &ind, uint32_t size)
uint8_t * getBuffer(const LayerScopeTensorIndex &ind) const
LayerScopeMemoryManager()
void releasePlan(const LayerScopeTensorIndex &ind)
static MemoryPlannerFactory< Index > & get()
TrainableMemoryManager(uint32_t optimizer_vars_count)
uint8_t * getOptVarBuffer(const ir::OperandIndex &ind, uint32_t pos_var) const
std::string getConfigString(const std::string &key)
Interface to plan memory.