How rocm/mori works
MORI is a GPU communication framework and suite of higher-level libraries, centered on RDMA/GPU integration. A typical application invokes collective, expert-parallel, shared-memory, or point-to-point APIs; those facilities use MORI’s topology, memory, bootstrap, and transport building blocks to move data across devices and nodes. UMBP is a distinct memory-pooling product: its clients access distributed key/value data managed across memory and storage tiers. The README documents these capabilities, but most implementation paths were not sampled, so uncertain internal wiring is omitted.
Main entry points: router.h Distributed router · dispatch_combine.py Dispatch-combine APIs · __init__.py Python APIs · topology.hpp Hardware topology
Components 23
Communication framework
- Python APIs
python/mori/__init__.py - Python bindings
src/pybind/mori.cpp - Process bootstrap
include/mori/application/bootstrap/bootstrap.hpp - Hardware topology
include/mori/application/topology/topology.hpp - Memory management
include/mori/application/memory/symmetric_memory.hpp - Transport layer
include/mori/application/transport/transport.hpp
Collectives
- Collective APIs
python/mori/ccl/collective.py - Collective runtime
src/collective/core/collective.cpp - Collective algorithms
include/mori/collective/collective.hpp
Expert parallel
- Dispatch-combine APIs
python/mori/ops/dispatch_combine.py - EP v2 kernels
python/mori/ops/dispatch_combine_v2/dispatch_combine_op.py - EP native kernels
src/ops/dispatch_combine/dispatch_combine.cpp
GPU communication
- IO engine API
python/mori/io/engine.py - Transfer engine
src/io/engine.cpp - Transfer backends
include/mori/io/backend.hpp - SHMEM APIs
include/mori/shmem/shmem_api.hpp - GPU kernel IR
python/mori/ir/ops.py
Memory pool
- UMBP client
src/umbp/include/umbp/umbp_client.h - Distributed router
src/umbp/include/umbp/distributed/routing/router.h - Storage tiers
src/umbp/include/umbp/local/storage_tier.h - Tier transfer engines
src/umbp/include/umbp/distributed/transfer/transfer_engine.h - Pool metadata
src/umbp/include/umbp/distributed/master/master_metadata_store.h
Other components
- GPU application
Connections 22
- GPU application → Python APIs: calls
- Python APIs → Python bindings: invokes
- GPU application → Collective APIs: calls
- Collective APIs → Collective runtime: dispatches
- Collective runtime → Collective algorithms: selects
- GPU application → Dispatch-combine APIs: calls
- Dispatch-combine APIs → EP v2 kernels: dispatches
- Dispatch-combine APIs → EP native kernels: dispatches
- GPU application → IO engine API: calls
- IO engine API → Transfer engine: invokes
- Transfer engine → Transfer backends: routes transfers
- GPU application → SHMEM APIs: calls
- GPU application → GPU kernel IR: uses
- GPU application → UMBP client: accesses pool
- UMBP client → Distributed router: routes requests
- Distributed router → Pool metadata: queries metadata
- Distributed router → Storage tiers: selects tier
- Distributed router → Tier transfer engines: transfers data
- Tier transfer engines → Storage tiers: reads and writes
- Process bootstrap → Hardware topology: initializes
- Hardware topology → Memory management: informs placement
- Transport layer → Transfer backends: provides transports