pub enum CollectiveMsg {
Op(Box<dyn CollectiveDispatch>),
BeginGroup {
reply: Sender<Result<(), GpuError>>,
},
EndGroup {
reply: Sender<Result<(), GpuError>>,
},
QueryCapabilities {
reply: Sender<NcclCapabilities>,
},
AllReduceF32 {
tensor: GpuRef<f32>,
op: ReduceOp,
reply: Sender<Result<(), GpuError>>,
},
BroadcastF32 {
data: GpuRef<f32>,
root: usize,
reply: Sender<Result<(), GpuError>>,
},
}Expand description
Public message surface for the CollectiveActor. Hot path goes
through CollectiveMsg::Op which carries a boxed
CollectiveDispatch; the legacy AllReduceF32 / BroadcastF32
variants remain for back-compat and route through the same
machinery.
Variants§
Op(Box<dyn CollectiveDispatch>)
Boxed dispatch: any typed *Request<T: NcclReduceSupported>
implements CollectiveDispatch and ships through this
variant. New ops (AllGather, ReduceScatter, AllToAll, …) all
arrive this way.
BeginGroup
Begin a group call. Issues ncclGroupStart on this rank.
EndGroup
End a group call. Issues ncclGroupEnd on this rank.
QueryCapabilities
Probe the loaded NCCL library for capabilities (version, fp8 / NVLS / SHARP support). Returns zeros if NCCL isn’t initialised on this host.
Fields
reply: Sender<NcclCapabilities>AllReduceF32
Legacy alias preserved for back-compat. New callers should
build AllReduceRequest<f32> and ship via
CollectiveMsg::Op.
Fields
BroadcastF32
Legacy alias preserved for back-compat. New callers should
build BroadcastRequest<f32> and ship via
CollectiveMsg::Op.