pub struct DualModuleParallelConfig {
pub thread_pool_size: usize,
pub edges_in_fusion_unit: bool,
pub enable_parallel_execution: bool,
}Fields§
§thread_pool_size: usizeenable async execution of dual operations; only used when calling top-level operations, not used in individual units
edges_in_fusion_unit: boolstrategy of edges placement: if edges are placed in the fusion unit, it’s good for software implementation because there are no duplicate edges and no unnecessary vertices in the descendant units. On the other hand, it’s not very favorable if implemented on hardware: the fusion unit usually contains a very small amount of vertices and edges for the interfacing between two blocks, but maintaining this small graph may consume additional hardware resources and increase the decoding latency. I want the algorithm to finally work on the hardware efficiently so I need to verify that it does work by holding all the fusion unit’s owned vertices and edges in the descendants, although usually duplicated.
enable_parallel_execution: boolenable parallel execution of a fused dual module
Trait Implementations§
Source§impl Clone for DualModuleParallelConfig
impl Clone for DualModuleParallelConfig
Source§fn clone(&self) -> DualModuleParallelConfig
fn clone(&self) -> DualModuleParallelConfig
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DualModuleParallelConfig
impl Debug for DualModuleParallelConfig
Source§impl Default for DualModuleParallelConfig
impl Default for DualModuleParallelConfig
Source§impl<'de> Deserialize<'de> for DualModuleParallelConfig
impl<'de> Deserialize<'de> for DualModuleParallelConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for DualModuleParallelConfig
impl RefUnwindSafe for DualModuleParallelConfig
impl Send for DualModuleParallelConfig
impl Sync for DualModuleParallelConfig
impl Unpin for DualModuleParallelConfig
impl UnwindSafe for DualModuleParallelConfig
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)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>
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>
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