metrale_model_engine/model/
drop.rs1#![allow(unused_imports, dead_code)]
10
11use parking_lot::Mutex;
12use std::collections::HashMap;
13use std::sync::Arc;
14
15use anyhow::{Result, bail};
16use metrale_cache::kv_cache::PagedKvCache;
17use metrale_config::{LayerType, ModelConfig};
18use metrale_gpu_runtime::buffers::BufferArena;
19use metrale_gpu_runtime::gpu::{DevicePtr, GpuBackend, GraphHandle, KernelHandle};
20
21use super::block_mgmt::{
22 apply_evicted_blocks, ensure_blocks_through_decode, ensure_blocks_through_prefill,
23 extract_layer_refs, reuse_prefix_match_disk_ids,
24};
25use super::ssm_pool::SsmStatePool;
26use super::ssm_snapshot::SsmSnapshotPool;
27use super::types::{PinnedMetaStaging, TransformerModel};
28use crate::traits::{ChunkedPrefillPageMetadata, Model, SequenceState};
29use metrale_model_layers::layer::{
30 AttnMetadataDev, ForwardContext, GdnPrefillBuffers, LayerState, SsmLayerState, TransformerLayer,
31};
32use metrale_model_layers::layers::ops;
33use metrale_model_layers::speculative::DraftProposer;
34use metrale_model_layers::weight_map::{DenseWeight, MtpWeights, QuantizedWeight};
35
36impl Drop for TransformerModel {
37 fn drop(&mut self) {
38 self.drop_pinned_staging();
39 self.ssm_snapshots.free_staging(self.gpu.as_ref());
43 }
44}