huggingface / huggingface/candle
Metal memory leak multiplying matrices
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 1.8k
- Avg merge
- 16h 42m
- Merged PRs (30d)
- 25
Description
Running this code multiplying a 784x100 matrix times a 100x10 matrix seems to leak memory. The memory usage gradually increases to more than 5 gigabytes when running with the metal feature enabled in release mode on commit `2b10aaa`:
```rust
use anyhow::Result;
use candle_core::{
backend::BackendDevice,
Device, MetalDevice, Tensor,
};
fn main() -> Result<()> {
let device = Device::Metal(MetalDevice::new(0)?);
let first = Tensor::randn(0f32, 1.0, (784, 100), &device)?;
let second = Tensor::randn(0f32, 1.0, (100, 10), &device)?;
loop {
first.matmul(&second)?;
}
}
```
On the CPU, memory usage stays steady at ~2 mb. This also seems to effect quantized matrix multiplication
In the full code this is minified from, I see memory usage increase from 15gb to >100gb when feeding in the same sized input to a bert model many times in a row
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.