pub struct TransferOptions {
pub layer_range: Option<Range<usize>>,
pub nixl_write_notification: Option<u64>,
pub bounce_buffer: Option<BounceBuffer>,
pub cuda_stream: Option<Arc<CudaStream>>,
pub src_kv_layout: Option<KvBlockLayout>,
pub dst_kv_layout: Option<KvBlockLayout>,
}Expand description
Fields§
§layer_range: Option<Range<usize>>Range of layers to transfer (None = all layers).
When specified, only the layers in this range will be transferred. This is useful for partial block transfers or layer-specific operations.
nixl_write_notification: Option<u64>NIXL write notification value delivered after RDMA write completes.
When specified, NIXL will deliver this notification value to the remote node after the RDMA write operation completes. This enables efficient notification of transfer completion without requiring polling.
bounce_buffer: Option<BounceBuffer>Bounce buffer specification for multi-hop transfers.
When direct transfers are not allowed or efficient, this specifies an intermediate staging area. The transfer will be split into two hops: source → bounce buffer → destination.
cuda_stream: Option<Arc<CudaStream>>Optional caller-provided CUDA stream for the transfer.
When provided, the transfer executor will use this stream instead of acquiring one from the pool. The caller is responsible for synchronization - no event is recorded by the executor.
This is useful for layer-wise transfers where all layers must execute on the same stream to allow proper event sequencing.
src_kv_layout: Option<KvBlockLayout>Override source block layout interpretation.
When set, the transfer executor will treat source blocks as having this layout instead of the layout’s default block_layout(). This enables transferring blocks that are stored in one format but should be interpreted as another (e.g., operational → universal).
dst_kv_layout: Option<KvBlockLayout>Override destination block layout interpretation.
When set, the transfer executor will treat destination blocks as having this layout instead of the layout’s default block_layout(). This enables writing blocks in a different format than the destination layout’s native format.
Implementations§
Source§impl TransferOptions
Auto-generated by derive_getters::Dissolve.
impl TransferOptions
Auto-generated by derive_getters::Dissolve.
Sourcepub fn dissolve(
self,
) -> (Option<Range<usize>>, Option<u64>, Option<BounceBuffer>, Option<Arc<CudaStream>>, Option<KvBlockLayout>, Option<KvBlockLayout>)
pub fn dissolve( self, ) -> (Option<Range<usize>>, Option<u64>, Option<BounceBuffer>, Option<Arc<CudaStream>>, Option<KvBlockLayout>, Option<KvBlockLayout>)
Dissolve TransferOptions into a tuple consisting of its fields in order of declaration.
Source§impl TransferOptions
impl TransferOptions
Sourcepub fn builder() -> TransferOptionsBuilder
pub fn builder() -> TransferOptionsBuilder
Create a new builder for transfer options.
Sourcepub fn from_layer_range(layer_range: Option<Range<usize>>) -> Self
pub fn from_layer_range(layer_range: Option<Range<usize>>) -> Self
Create transfer options from an optional layer range.
Trait Implementations§
Source§impl Clone for TransferOptions
impl Clone for TransferOptions
Source§fn clone(&self) -> TransferOptions
fn clone(&self) -> TransferOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for TransferOptions
impl Default for TransferOptions
Source§fn default() -> TransferOptions
fn default() -> TransferOptions
Auto Trait Implementations§
impl Freeze for TransferOptions
impl RefUnwindSafe for TransferOptions
impl Send for TransferOptions
impl Sync for TransferOptions
impl Unpin for TransferOptions
impl UnsafeUnpin for TransferOptions
impl UnwindSafe for TransferOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request