mirror of
https://github.com/ml-explore/mlx.git
synced 2025-11-01 16:58:08 +08:00
fix memory count bug (#2717)
This commit is contained in:
@@ -97,7 +97,6 @@ CudaAllocator::CudaAllocator()
|
|||||||
|
|
||||||
Buffer CudaAllocator::malloc(size_t size) {
|
Buffer CudaAllocator::malloc(size_t size) {
|
||||||
// Find available buffer from cache.
|
// Find available buffer from cache.
|
||||||
auto orig_size = size;
|
|
||||||
std::unique_lock lock(mutex_);
|
std::unique_lock lock(mutex_);
|
||||||
if (size <= small_block_size) {
|
if (size <= small_block_size) {
|
||||||
size = 8;
|
size = 8;
|
||||||
@@ -131,7 +130,7 @@ Buffer CudaAllocator::malloc(size_t size) {
|
|||||||
}
|
}
|
||||||
lock.lock();
|
lock.lock();
|
||||||
}
|
}
|
||||||
active_memory_ += size;
|
active_memory_ += buf->size;
|
||||||
peak_memory_ = std::max(active_memory_, peak_memory_);
|
peak_memory_ = std::max(active_memory_, peak_memory_);
|
||||||
|
|
||||||
// Maintain the cache below the requested limit.
|
// Maintain the cache below the requested limit.
|
||||||
|
|||||||
@@ -58,6 +58,20 @@ class TestMemory(mlx_tests.MLXTestCase):
|
|||||||
with self.assertRaises(ValueError):
|
with self.assertRaises(ValueError):
|
||||||
mx.set_wired_limit(max_size + 10)
|
mx.set_wired_limit(max_size + 10)
|
||||||
|
|
||||||
|
def test_active_memory_count(self):
|
||||||
|
mx.synchronize()
|
||||||
|
mx.clear_cache()
|
||||||
|
init_mem = mx.get_active_memory()
|
||||||
|
a = mx.zeros((128, 128))
|
||||||
|
mx.eval(a)
|
||||||
|
mx.synchronize()
|
||||||
|
del a
|
||||||
|
a = mx.zeros((90, 128))
|
||||||
|
mx.eval(a)
|
||||||
|
mx.synchronize()
|
||||||
|
del a
|
||||||
|
self.assertEqual(init_mem, mx.get_active_memory())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
mlx_tests.MLXTestRunner()
|
mlx_tests.MLXTestRunner()
|
||||||
|
|||||||
Reference in New Issue
Block a user