ONE
ONE copied to clipboard
[onert] Introduce unified/single memory manager
Current onert has a memory manager per an backend. This task introduces a single unified memory manager for all backends. This enables onert to make its own interface easy
Problems
- On arm arch, it doesn't seem to be not easy because of opencl memory concept. It should be invested more.
- Therefore, it could be two memory pool for cpu and gpu.
- If each backend should own memory allocator?
- While ruy has own memory allocator, xnnpack can take others' memory allocator.
In the future,
- Could use the better memory allocator like tcmalloc
- Could make onert to support memory bound feature.
References
-
Spec 's
3.3Memory Model
- Relevant internal issue
When https://github.com/Samsung/ONE/issues/5006 is done, this task would start.
FYI, related article and paper.
- Optimizing TensorFlow Lite Runtime Memory : https://blog.tensorflow.org/2020/10/optimizing-tensorflow-lite-runtime.html
- Efficient Memory Management for Deep Neural Net Inference : https://arxiv.org/abs/2001.03288