torsh_cli/commands/model/
mod.rs1use anyhow::Result;
20use clap::Subcommand;
21
22use crate::config::Config;
23
24pub mod analysis;
26pub mod args;
27pub mod benchmarking;
28pub mod conversion;
29pub mod enhanced_profiling;
30pub mod enhanced_serialization;
31pub mod optimization;
32pub mod profiling;
33pub mod pytorch_parser;
34pub mod real_benchmarking;
35pub mod serialization;
36pub mod tensor_integration;
37pub mod types;
38pub mod validation;
39
40pub use args::*;
42
43#[derive(Subcommand)]
45pub enum ModelCommands {
46 Convert(ConvertArgs),
48
49 Optimize(OptimizeArgs),
51
52 Quantize(QuantizeArgs),
54
55 Prune(PruneArgs),
57
58 Inspect(InspectArgs),
60
61 Validate(ValidateArgs),
63
64 Benchmark(BenchmarkArgs),
66
67 Compress(CompressArgs),
69
70 Extract(ExtractArgs),
72
73 Merge(MergeArgs),
75}
76
77pub async fn execute(cmd: ModelCommands, config: &Config, output_format: &str) -> Result<()> {
79 match cmd {
80 ModelCommands::Convert(args) => {
81 conversion::convert_model(args, config, output_format).await
82 }
83 ModelCommands::Optimize(args) => {
84 optimization::optimize_model(args, config, output_format).await
85 }
86 ModelCommands::Quantize(args) => {
87 optimization::quantize_model(args, config, output_format).await
88 }
89 ModelCommands::Prune(args) => optimization::prune_model(args, config, output_format).await,
90 ModelCommands::Inspect(args) => analysis::inspect_model(args, config, output_format).await,
91 ModelCommands::Validate(args) => {
92 analysis::validate_model(args, config, output_format).await
93 }
94 ModelCommands::Benchmark(args) => {
95 benchmarking::benchmark_model(args, config, output_format).await
96 }
97 ModelCommands::Compress(args) => {
98 conversion::compress_model(args, config, output_format).await
99 }
100 ModelCommands::Extract(args) => {
101 conversion::extract_model(args, config, output_format).await
102 }
103 ModelCommands::Merge(args) => conversion::merge_model(args, config, output_format).await,
104 }
105}