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 pytorch_reader;
35pub mod real_benchmarking;
36pub mod serialization;
37pub mod tensor_integration;
38pub mod types;
39pub mod validation;
40
41pub use args::*;
43
44#[derive(Subcommand)]
46pub enum ModelCommands {
47 Convert(ConvertArgs),
49
50 Optimize(OptimizeArgs),
52
53 Quantize(QuantizeArgs),
55
56 Prune(PruneArgs),
58
59 Inspect(InspectArgs),
61
62 Validate(ValidateArgs),
64
65 Benchmark(BenchmarkArgs),
67
68 Compress(CompressArgs),
70
71 Extract(ExtractArgs),
73
74 Merge(MergeArgs),
76}
77
78pub async fn execute(cmd: ModelCommands, config: &Config, output_format: &str) -> Result<()> {
80 match cmd {
81 ModelCommands::Convert(args) => {
82 conversion::convert_model(args, config, output_format).await
83 }
84 ModelCommands::Optimize(args) => {
85 optimization::optimize_model(args, config, output_format).await
86 }
87 ModelCommands::Quantize(args) => {
88 optimization::quantize_model(args, config, output_format).await
89 }
90 ModelCommands::Prune(args) => optimization::prune_model(args, config, output_format).await,
91 ModelCommands::Inspect(args) => analysis::inspect_model(args, config, output_format).await,
92 ModelCommands::Validate(args) => {
93 analysis::validate_model(args, config, output_format).await
94 }
95 ModelCommands::Benchmark(args) => {
96 benchmarking::benchmark_model(args, config, output_format).await
97 }
98 ModelCommands::Compress(args) => {
99 conversion::compress_model(args, config, output_format).await
100 }
101 ModelCommands::Extract(args) => {
102 conversion::extract_model(args, config, output_format).await
103 }
104 ModelCommands::Merge(args) => conversion::merge_model(args, config, output_format).await,
105 }
106}