pub struct MultiGpuSetup {
pub contexts: Vec<Arc<GpuContext>>,
pub sync_managers: Vec<MultiGpuSync<f32>>,
}Expand description
Helper to setup multi-GPU training
Fields§
§contexts: Vec<Arc<GpuContext>>GPU contexts for each device
sync_managers: Vec<MultiGpuSync<f32>>Synchronization managers
Implementations§
Source§impl MultiGpuSetup
impl MultiGpuSetup
Sourcepub fn new(
num_gpus: usize,
max_param_size: usize,
) -> Result<Self, GpuOptimError>
pub fn new( num_gpus: usize, max_param_size: usize, ) -> Result<Self, GpuOptimError>
Initialize multi-GPU setup.
Every logical rank shares the same physical device: scirs2-core
0.6.x has no API to enumerate or address more than one, so there is
nothing else this constructor could honestly open. Opens the context
via crate::optimizers::SUPPORTED_BACKENDS (the backends this
crate actually ships kernels for), never the removed Cuda backend
that always errors.
Auto Trait Implementations§
impl !RefUnwindSafe for MultiGpuSetup
impl !UnwindSafe for MultiGpuSetup
impl Freeze for MultiGpuSetup
impl Send for MultiGpuSetup
impl Sync for MultiGpuSetup
impl Unpin for MultiGpuSetup
impl UnsafeUnpin for MultiGpuSetup
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more