51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
//! RDMA Transport Layer for High-Performance Distributed Training
|
|
//!
|
|
//! This module provides RDMA (Remote Direct Memory Access) support for
|
|
//! high-bandwidth, low-latency communication between nodes in a distributed
|
|
//! training cluster.
|
|
//!
|
|
//! # Features
|
|
//! - InfiniBand verbs integration via libibverbs
|
|
//! - GPU Direct RDMA support for direct GPU-to-GPU transfers
|
|
//! - Zero-copy data transfer
|
|
//! - Reliable connected (RC) queue pairs
|
|
//! - Completion queue polling for async operations
|
|
//! - Collective communication primitives (AllReduce, Broadcast, etc.)
|
|
//!
|
|
//! # Requirements
|
|
//! - libibverbs development libraries
|
|
//! - RDMA-capable network adapter (InfiniBand, RoCE, iWARP)
|
|
//! - For GPU Direct: NVIDIA GPUs with GPUDirect RDMA support
|
|
//!
|
|
//! # Example
|
|
//! ```rust,ignore
|
|
//! use rtx_distributed::rdma_transport::{RdmaTransport, RdmaConfig};
|
|
//!
|
|
//! let config = RdmaConfig::default();
|
|
//! let transport = RdmaTransport::new(config)?;
|
|
//! transport.connect(peer_addr).await?;
|
|
//! transport.send(&data).await?;
|
|
//! ```
|
|
|
|
pub mod collectives;
|
|
pub mod config;
|
|
pub mod discovery;
|
|
pub mod ffi;
|
|
pub mod gpu_direct;
|
|
pub mod transport;
|
|
pub mod types;
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|
|
|
|
// Re-export all public types
|
|
pub use collectives::{RdmaCollectiveStats, RdmaCollectives};
|
|
pub use config::RdmaConfig;
|
|
pub use discovery::{discover_rdma_devices, is_rdma_available};
|
|
pub use ffi::*;
|
|
pub use gpu_direct::{GpuDirectConfig, GpuDirectRdmaTransport};
|
|
pub use transport::{
|
|
RdmaCompletionQueue, RdmaSge, RdmaTransport, RdmaWorkCompletion, RdmaWorkRequest,
|
|
};
|
|
pub use types::*;
|