Initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
//! 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::*;
|
||||
Reference in New Issue
Block a user