20  BufferCache(MTL::Device* 
device);
 
   23  MTL::Buffer* reuse_from_cache(
size_t size);
 
   24  void recycle_to_cache(MTL::Buffer* 
buf);
 
   25  void release_cached_buffers(
size_t min_bytes_to_free);
 
   34    BufferHolder(MTL::Buffer* buf_) : 
buf(buf_), 
prev(
nullptr), 
next(
nullptr) {}
 
   41  void add_at_head(BufferHolder* to_add);
 
   42  void remove_from_list(BufferHolder* to_remove);
 
   46  std::multimap<size_t, BufferHolder*> buffer_pool_;
 
   57  virtual Buffer malloc(
size_t size, 
bool allow_swap = 
false) 
override;
 
   60    return active_memory_;
 
 
   66    std::unique_lock lk(mutex_);
 
 
   70    return buffer_cache_.cache_size();
 
 
   82  BufferCache buffer_cache_;
 
   87  size_t active_memory_{0};
 
   88  size_t peak_memory_{0};
 
   89  size_t max_pool_size_;
 
 
 
Definition allocator.h:39
 
Definition allocator.h:12