pub struct TransformerParallelMapping {
pub heads_per_rank: usize,
pub kv_heads_per_rank: usize,
pub head_dim: usize,
pub hidden_per_rank: usize,
pub intermediate_per_rank: usize,
}Expand description
Tensor parallel layer mapping for transformer models
Fields§
§heads_per_rank: usizeNumber of attention heads per rank
kv_heads_per_rank: usizeNumber of KV heads per rank
head_dim: usizeHead dimension
Hidden dimension per rank
intermediate_per_rank: usizeIntermediate dimension per rank (for MLP)
Implementations§
Source§impl TransformerParallelMapping
impl TransformerParallelMapping
Sourcepub fn new(
num_heads: usize,
num_kv_heads: usize,
head_dim: usize,
hidden_dim: usize,
intermediate_dim: usize,
tp_size: usize,
) -> Result<Self>
pub fn new( num_heads: usize, num_kv_heads: usize, head_dim: usize, hidden_dim: usize, intermediate_dim: usize, tp_size: usize, ) -> Result<Self>
Create mapping for a transformer model
Sourcepub fn q_proj_size(&self) -> usize
pub fn q_proj_size(&self) -> usize
Get Q projection output dimension per rank
Sourcepub fn k_proj_size(&self) -> usize
pub fn k_proj_size(&self) -> usize
Get K projection output dimension per rank
Sourcepub fn v_proj_size(&self) -> usize
pub fn v_proj_size(&self) -> usize
Get V projection output dimension per rank
Sourcepub fn o_proj_in_size(&self) -> usize
pub fn o_proj_in_size(&self) -> usize
Get O projection input dimension per rank
Sourcepub fn attention_weight_shards(
&self,
layer_idx: usize,
config: &TensorParallelConfig,
) -> Vec<WeightShard>
pub fn attention_weight_shards( &self, layer_idx: usize, config: &TensorParallelConfig, ) -> Vec<WeightShard>
Get weight shards for attention layer
Sourcepub fn mlp_weight_shards(
&self,
layer_idx: usize,
config: &TensorParallelConfig,
) -> Vec<WeightShard>
pub fn mlp_weight_shards( &self, layer_idx: usize, config: &TensorParallelConfig, ) -> Vec<WeightShard>
Get weight shards for MLP layer
Trait Implementations§
Source§impl Clone for TransformerParallelMapping
impl Clone for TransformerParallelMapping
Source§fn clone(&self) -> TransformerParallelMapping
fn clone(&self) -> TransformerParallelMapping
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for TransformerParallelMapping
impl RefUnwindSafe for TransformerParallelMapping
impl Send for TransformerParallelMapping
impl Sync for TransformerParallelMapping
impl Unpin for TransformerParallelMapping
impl UnsafeUnpin for TransformerParallelMapping
impl UnwindSafe for TransformerParallelMapping
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
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> 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