https://github.com/typhoonzero/unimem
Unified memory allocators used for both CPU and GPU, for automatically alloc type switching
https://github.com/typhoonzero/unimem
Last synced: about 1 year ago
JSON representation
Unified memory allocators used for both CPU and GPU, for automatically alloc type switching
- Host: GitHub
- URL: https://github.com/typhoonzero/unimem
- Owner: typhoonzero
- License: apache-2.0
- Created: 2019-02-22T08:17:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-04-15T23:39:46.000Z (about 7 years ago)
- Last Synced: 2025-02-01T14:45:13.544Z (over 1 year ago)
- Language: C++
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# unimem
Unified memory allocator achieving best performance on heterogous devices,
e.g. applications that make use of general `malloc` and GPU `cudaMalloc`.
For devices have their own memory to manage, we apply a general method
using one allocating backend "unimalloc" which is derived from
[dlmalloc](http://gee.cs.oswego.edu/dl/html/malloc.html). This is a well
known allocator that proved to be efficient and generating less fragments.
Note that the "metadata" which stores "bins" and "chunks" are actually stored
in CPU memory but the memory allocation no GPU device memory still have
memory overhead due to make implementaion simpler.
For more detailed use cases, we provide a set of "decorators" to form a
high-level wrappers to reduce the average allocating and free time, like:
`pool_allocator`, `stack_allocator`, etc.