21 BufferCache(MTL::Device*
device);
24 MTL::Buffer* reuse_from_cache(
size_t size);
25 void recycle_to_cache(MTL::Buffer*
buf);
26 void release_cached_buffers(
size_t min_bytes_to_free);
35 BufferHolder(MTL::Buffer* buf_) :
buf(buf_),
prev(
nullptr),
next(
nullptr) {}
42 void add_at_head(BufferHolder* to_add);
43 void remove_from_list(BufferHolder* to_remove);
47 std::multimap<size_t, BufferHolder*> buffer_pool_;
62 return active_memory_;
68 std::unique_lock lk(mutex_);
72 return buffer_cache_.cache_size();
85 BufferCache buffer_cache_;
92 size_t active_memory_{0};
93 size_t peak_memory_{0};
94 size_t max_pool_size_;
95 size_t wired_limit_{0};
Definition allocator.h:39
Definition allocator.h:12