Async and Futures
MinT provides both synchronous and asynchronous APIs for efficient operations.
Synchronous Example
future = client.forward_backward(data, loss_fn)
result = future.result() # Blocks until completeAsynchronous Example (Double Await)
future = await client.forward_backward_async(data, loss_fn)
result = await future- First
awaitconfirms submission (ensures ordering) - Second
awaitwaits for completion
Performance Optimization
Queue operations efficiently by submitting them before waiting:
# Submit forward_backward
fwd_bwd_future = await client.forward_backward_async(batch, loss_fn)
# Queue next operation immediately
optim_future = await client.optim_step_async(adam_params)
# Retrieve results
fwd_bwd_result = await fwd_bwd_future
optim_result = await optim_futureThis approach overlaps computation and communication, maximizing GPU utilization.