umf
Unified Memory Framework
What it is and what it does
UMF is a memory management framework that lets you build custom allocators and manage multiple memory pools with different characteristics. It abstracts memory providers (which handle coarse-grained allocation from the OS or fixed buffers) and pool allocators (which handle fine-grained allocation and pooling), allowing you to isolate different allocation types and direct them to different hardware resources as needed.
The library ships as a compiled wheel and depends on tcmlib at runtime. It supports both Linux and Windows platforms and includes predefined providers (OS memory, fixed buffer) and allocators, as well as interfaces for writing custom ones. While the description emphasizes C/C++ usage with examples in those languages, the Python package metadata and wheel distribution suggest some Python-facing capability, though the extent and maturity of Python bindings are not clearly documented in the fact sheet.
Use it for:
- Isolate GPU memory allocations (via Level Zero or CUDA providers) from CPU allocations in heterogeneous compute applications
- Build custom memory pools with different performance characteristics (e.g., jemalloc-backed vs. OS-backed) for different workload phases
- Manage pre-allocated fixed buffers for real-time or embedded systems where allocation patterns must be deterministic
- Benchmark and profile memory allocation behavior using UMF's built-in micro-benchmarks and statistics APIs
- Implement IPC (inter-process communication) with shared memory on Linux using the OS provider's shared memory mapping mode
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
UMF is a library for constructing and managing memory allocators and pools, allowing isolation of different allocation types across multiple memory pools with distinct attributes and hardware resources.
Yes, with conditions. UMF is actively maintained, permissively licensed, and has no known vulnerabilities. Install it if you need fine-grained control over memory allocation strategies across multiple pools or hardware resources. However, verify that Python bindings meet your needs first—the package appears to be primarily a C/C++ library, and the extent of Python integration is unclear from the metadata. Medium install friction due to compiled dependencies is acceptable for the use case.
Install
umf on PyPI
pip
pip install umfuv
uv add umfpoetry
poetry add umfInstalling umf
Before you install
Medium install friction due to compiled wheels and a runtime dependency on tcmlib. The package is actively maintained with recent commits and has been in production use since its initial release in October 2024.
License in practice
Licensed under Apache-2.0 with LLVM exceptions (permissive). This allows commercial and private use with minimal restrictions, though you should review the LLVM exception clause for your specific use case.
Quickstart
pip install umf
import umf
# UMF is primarily a C/C++ library; Python bindings or usage patterns depend on tcmlib integration
UMF is a compiled C/C++ library distributed as a wheel. Requires compatible system architecture (x86_64 on Linux/Windows) and tcmlib as a runtime dependency.
Verify before relying
- Whether Python bindings are fully functional or if this is primarily a C/C++ library with limited Python exposure
- Specific Python version support (requires_python is unspecified in metadata)
- How tcmlib integrates with UMF and what additional setup may be needed
- Whether the library requires system-level dependencies beyond tcmlib (e.g., hwloc, compiler toolchain)
Package facts
| License | Apache-2.0 with LLVM exceptions (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — tcmlib |
| Maintenance | actively maintained — 112 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 586,598/month — #5,880 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: umf-1.1.0-py2.py3-none-manylinux_2_28_x86_64.whl; umf-1.1.0-py2.py3-none-win_amd64.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
omnimallocOmniMalloc solves static memory allocation for…
permissive · top 15,000 on PyPI
librmm-cu12librmm-cu12 provides GPU memory allocation and…
permissive · top 15,000 on PyPI
rmm-cu12RMM provides a common interface for customizing…
permissive · top 15,000 on PyPI
cymemcymem provides memory-management helpers for…
permissive · top 5,000 on PyPI
intel-cmplr-lib-urProvides shared runtime libraries for Intel…
unclear · top 15,000 on PyPI
intel-openmpProvides Intel's OpenMP runtime library for…
unclear · top 5,000 on PyPI
nvidia-nvshmem-cu12NVSHMEM provides a global address space for GPU…
unclear · top 5,000 on PyPI
nvidia-nvshmem-cu13NVSHMEM provides a global address space for GPU…
unclear · top 1,000 on PyPI
smmapSmmap provides a sliding-window memory map…
permissive · top 1,000 on PyPI
nvidia-cuda-runtime-cu12Provides NVIDIA CUDA 12 runtime native…
unclear · top 1,000 on PyPI