deepinv.distributed#

This module provides a simplified API for distributing DeepInverse objects across multiple devices and processes. The core function distribute() automatically wraps your objects (stacked physics, denoisers, data fidelity) into their distributed counterparts, handling all the boilerplate for you.

See the user guide on distributed reconstruction for more information.

Main API#

These are the main components most users need:

deepinv.distributed.DistributedContext

Context manager for distributed computing.

deepinv.distributed.distribute

Distribute a DeepInverse object across multiple devices.

Core Classes#

These classes are created automatically by deepinv.distributed.distribute(). You typically don’t need to instantiate them directly.

deepinv.distributed.DistributedStackedPhysics

Holds only local physics operators.

deepinv.distributed.DistributedStackedLinearPhysics

Distributed linear physics operators.

deepinv.distributed.DistributedProcessing

Distributed signal processing using pluggable tiling and reduction strategies.

deepinv.distributed.DistributedDataFidelity

Distributed data fidelity term for use with distributed physics operators.

Distribution Strategies#

Advanced: Custom tiling strategies for spatial distribution of denoisers.

deepinv.distributed.strategies.DistributedSignalStrategy

Abstract base class for distributed signal processing strategies.

deepinv.distributed.strategies.BasicStrategy

Basic distributed strategy with naive splitting along specified dimensions.

deepinv.distributed.strategies.OverlapTilingStrategy

Smart tiling strategy with padding for N-dimensional data.

deepinv.distributed.strategies.create_strategy

Create a distributed signal strategy by name.