remove cache for now

This commit is contained in:
Awni Hannun 2023-12-25 13:45:05 -08:00
parent c67a48be48
commit 8fbd760b90

View File

@ -1,6 +1,5 @@
// Copyright © 2023 Apple Inc.
#include <iostream>
#include "mlx/backend/metal/allocator.h"
#include "mlx/backend/metal/metal.h"
@ -31,33 +30,34 @@ MetalAllocator::MetalAllocator()
Buffer MetalAllocator::malloc(size_t size, bool allow_swap /* = false */) {
// Align up memory
///if (size > vm_page_size) {
/// if (size > vm_page_size) {
// size = vm_page_size * ((size + vm_page_size - 1) / vm_page_size);
//}
// MTL::Buffer* buf = buffer_cache_.reuse_from_cache(size);
// MTL::Buffer* buf = buffer_cache_.reuse_from_cache(size);
// Prepare to allocate new memory as needed
// if (!buf) {
// If we have memory pressure, first check if we can reclaim some memory
// from the cache
// if (auto new_size = device_->currentAllocatedSize() + size; new_size >= block_limit_) {
// buffer_cache_.clear();
// buffer_cache_.release_cached_buffers(
// std::max(new_size - block_limit_, size));
// }
// if (!buf) {
// If we have memory pressure, first check if we can reclaim some memory
// from the cache
// if (auto new_size = device_->currentAllocatedSize() + size; new_size >=
// block_limit_) {
// buffer_cache_.clear();
// buffer_cache_.release_cached_buffers(
// std::max(new_size - block_limit_, size));
// }
// If there is still too much memory pressure, fail (likely causes a wait).
// size + allocated (to avoid going over the limit)
if (!allow_swap && device_->currentAllocatedSize() + size >= block_limit_) {
return Buffer{nullptr};
}
// }
// If there is still too much memory pressure, fail (likely causes a wait).
// size + allocated (to avoid going over the limit)
if (!allow_swap && device_->currentAllocatedSize() + size >= block_limit_) {
return Buffer{nullptr};
}
// }
// Allocate new buffer if needed
size_t res_opt = MTL::ResourceStorageModeShared;
res_opt |= MTL::ResourceHazardTrackingModeTracked;
auto buf = device_->newBuffer(size, res_opt);
// Allocate new buffer if needed
size_t res_opt = MTL::ResourceStorageModeShared;
res_opt |= MTL::ResourceHazardTrackingModeTracked;
auto buf = device_->newBuffer(size, res_opt);
peak_allocated_size_ =
std::max(peak_allocated_size_, device_->currentAllocatedSize());