spark_model/layers/qwen3_ssm/
init_sequential.rs1use anyhow::Result;
8use spark_runtime::gpu::GpuBackend;
9
10use super::super::Qwen3SsmLayer;
11use crate::layers::FfnComponent;
12use crate::weight_map::{DenseWeight, QuantizedWeight, SsmWeights};
13
14impl Qwen3SsmLayer {
15 pub fn new_sequential(
21 input_norm: DenseWeight,
22 ssm: SsmWeights,
23 post_attn_norm: DenseWeight,
24 ffn: FfnComponent,
25 qkvz_nvfp4: Option<QuantizedWeight>,
26 qkvz_nvfp4_t: Option<QuantizedWeight>,
27 out_proj_nvfp4_t: Option<QuantizedWeight>,
28 config: &atlas_core::config::ModelConfig,
29 gpu: &dyn GpuBackend,
30 ) -> Result<Self> {
31 let mut layer = Self::new(
32 input_norm,
33 ssm,
34 post_attn_norm,
35 ffn,
36 qkvz_nvfp4,
37 config,
38 gpu,
39 )?;
40 layer.sequential_qkvz = true;
41 layer.qkvz_nvfp4_t = qkvz_nvfp4_t;
42 layer.out_proj_nvfp4_t = out_proj_nvfp4_t;
43 Ok(layer)
44 }
45}