Expand description
ToRSh JIT compilation and kernel fusion module
This module provides Just-In-Time (JIT) compilation capabilities for ToRSh, enabling automatic kernel fusion and optimization of computational graphs.
§Features
- Kernel Fusion: Automatically fuses compatible operations to reduce memory bandwidth
- Graph Optimization: Applies various optimization passes to the computation graph
- Multiple Backends: Supports Cranelift and (future) MLIR code generation
- TorchScript-like API: Compatible with PyTorch’s JIT compilation model
§Example
ⓘ
use torsh_jit::{jit_compile, FusionStrategy};
// Define a model
let model = MyModel::new();
// JIT compile with fusion enabled
let jit_model = jit_compile(model, FusionStrategy::Aggressive)?;
// Use the JIT-compiled model
let output = jit_model.forward(input);Re-exports§
pub use abstract_interpretation::AbstractAnalysisResult;pub use abstract_interpretation::AbstractDomain;pub use abstract_interpretation::AbstractInterpretationConfig;pub use abstract_interpretation::AbstractInterpreter;pub use abstract_interpretation::AbstractValue;pub use abstract_interpretation::ConstantDomain;pub use abstract_interpretation::IntervalDomain;pub use abstract_interpretation::SignDomain;pub use adaptive_compilation::AdaptiveCompiler;pub use adaptive_compilation::AdaptiveConfig;pub use adaptive_compilation::CompilationStrategy;pub use adaptive_compilation::PerformanceMetrics;pub use codegen::CodeGenerator;pub use const_eval::ConstEvalConfig;pub use const_eval::ConstantEvaluator;pub use const_eval::ConstantValue;pub use const_eval::EvaluationResult;pub use custom_ops::get_custom_op;pub use custom_ops::list_custom_ops;pub use custom_ops::register_custom_op;pub use custom_ops::CustomOpBuilder;pub use debug_symbols::DebugSymbolConfig;pub use debug_symbols::DebugSymbolManager;pub use debug_symbols::SourceLocation;pub use debug_symbols::SymbolTable;pub use debugger::BreakpointLocation;pub use debugger::DebugCommand;pub use debugger::DebugSession;pub use debugger::DebugState;pub use debugger::DebugValue;pub use debugger::DebuggerConfig;pub use debugger::ExecutionLocation;pub use debugger::InspectionTarget;pub use debugger::JitDebugger;pub use differentiable_compilation::CompilationParams;pub use differentiable_compilation::CompilationTrainer;pub use differentiable_compilation::DiffCompilationResult;pub use differentiable_compilation::DifferentiableCompiler;pub use differentiable_compilation::GumbelSoftmax;pub use differentiable_compilation::PerformanceMetrics as DiffPerformanceMetrics;pub use differentiable_compilation::SoftDecision;pub use error_diagnostics::DiagnosticError;pub use error_diagnostics::ErrorCategory;pub use error_diagnostics::ErrorDiagnosticsManager;pub use error_diagnostics::ErrorSeverity;pub use fusion::FusionStrategy;pub use fusion::KernelFusion;pub use generics::create_type_param;pub use generics::shape_constraint;pub use generics::trait_constraint;pub use generics::GenericFunctionManager;pub use generics::GenericFunctionTemplate;pub use generics::ParameterKind;pub use generics::TypeConstraint;pub use generics::TypeParameter;pub use graph::ComputationGraph;pub use graph::Edge;pub use graph::Node;pub use graph::NodeId;pub use hardware_tuning::Architecture;pub use hardware_tuning::HardwareInfo;pub use hardware_tuning::HardwareTuner;pub use hardware_tuning::HardwareTuningConfig;pub use hardware_tuning::TuningRecommendation;pub use llvm_backend::LlvmBackend;pub use llvm_backend::LlvmOptimizer;pub use metaprogramming::CodeTemplate;pub use metaprogramming::DynamicCodeGenerator;pub use metaprogramming::GeneratedCode;pub use metaprogramming::GraphReflection;pub use metaprogramming::MacroDefinition;pub use metaprogramming::MetaprogrammingEngine;pub use metaprogramming::RuntimeReflector;pub use metaprogramming::TemplateParameters;pub use mlir_backend::MlirBackend;pub use mlir_backend::MlirOptimizer;pub use mlir_backend::MlirPass;pub use neural_compilation::CompilationStrategy as NeuralCompilationStrategy;pub use neural_compilation::GraphFeatures;pub use neural_compilation::NeuralCompiler;pub use neural_compilation::NeuralCompilerConfig;pub use neural_compilation::OptimizationDecision;pub use optimizer::GraphOptimizer;pub use partial_evaluation::ConstantFolder;pub use partial_evaluation::EvaluationStatistics;pub use partial_evaluation::FunctionSpecializer;pub use partial_evaluation::OptimizedGraph;pub use partial_evaluation::OptimizedIrModule;pub use partial_evaluation::PartialEvalConfig;pub use partial_evaluation::PartialEvaluator;pub use pgo::OptimizationRecommendation as PgoRecommendation;pub use pgo::OptimizationType as PgoOptimizationType;pub use pgo::PgoConfig;pub use pgo::ProfileGuidedOptimizer;pub use plugin_system::load_all_plugins;pub use plugin_system::load_plugin;pub use plugin_system::Plugin;pub use plugin_system::PluginCapability;pub use plugin_system::PluginManager;pub use plugin_system::PluginMetadata;pub use plugin_system::PluginRegistry;pub use polyhedral_optimization::AffineExpr;pub use polyhedral_optimization::AffineSchedule;pub use polyhedral_optimization::LoopNest;pub use polyhedral_optimization::PolyhedralConfig;pub use polyhedral_optimization::PolyhedralOptimizer;pub use polyhedral_optimization::Polyhedron;pub use polyhedral_optimization::TransformationMatrix;pub use polyhedral_optimization::TransformationType;pub use probabilistic_compilation::BetaDistribution;pub use probabilistic_compilation::MonteCarloResult;pub use probabilistic_compilation::NormalDistribution;pub use probabilistic_compilation::ProbabilisticCompilationResult;pub use probabilistic_compilation::ProbabilisticCompiler;pub use probabilistic_compilation::ProbabilisticConfig;pub use probabilistic_compilation::ProbabilisticPerformance;pub use probabilistic_compilation::UncertainDecision;pub use profiler::PerformanceEvent;pub use profiler::ProfilerConfig;pub use profiler::ProfilerManager;pub use profiler::ProfilingSession;pub use program_synthesis::ExampleBuilder;pub use program_synthesis::ProgramSynthesizer;pub use program_synthesis::SynthesisExample;pub use program_synthesis::SynthesisResult;pub use program_synthesis::SynthesisStrategy;pub use program_synthesis::SynthesisTemplate;pub use program_synthesis::SynthesisValue;pub use runtime::JitRuntime;pub use script::export_torchscript;pub use script::import_torchscript;pub use script::ScriptCompiler;pub use specialization::create_specialized_type;pub use specialization::SpecializationConfig;pub use specialization::SpecializedType;pub use specialization::TypeSpecializer;pub use speculative_optimization::DeoptimizationEvent;pub use speculative_optimization::SpeculationResult;pub use speculative_optimization::SpeculativeConfig;pub use speculative_optimization::SpeculativeOptimizer;pub use symbolic_execution::Constraint;pub use symbolic_execution::ConstraintSet;pub use symbolic_execution::ExecutionState;pub use symbolic_execution::SymbolicExecutionConfig;pub use symbolic_execution::SymbolicExecutionEngine;pub use symbolic_execution::SymbolicExecutionResult;pub use symbolic_execution::SymbolicGraph;pub use symbolic_execution::SymbolicValue;pub use trace_viz::TraceEvent;pub use trace_viz::TraceVisualizationManager;pub use trace_viz::VisualizationConfig;pub use trace_viz::VisualizationSession;pub use optimization_advisor::analyze_computation_graph;pub use optimization_advisor::analyze_with_benchmarks;pub use optimization_advisor::analyze_with_profiling;pub use optimization_advisor::create_advisor;pub use optimization_advisor::create_advisor_with_config;pub use optimization_advisor::create_fast_config;pub use optimization_advisor::create_production_config;pub use optimization_advisor::create_thorough_config;pub use optimization_advisor::quick_analyze;pub use optimization_advisor::AdvisorConfig;pub use optimization_advisor::AnalysisInput;pub use optimization_advisor::CostBenefitAnalysis;pub use optimization_advisor::OptimizationAdvisor;pub use optimization_advisor::OptimizationRecommendation;pub use optimization_advisor::OptimizationReport;pub use optimization_advisor::OptimizationType;pub use optimization_advisor::PatternAnalysis;pub use optimization_advisor::PerformanceAnalysis;pub use optimization_advisor::SystemConstraints;pub use optimization_advisor::TargetPlatform;pub use optimization_advisor::UserPreferences;
Modules§
- abstract_
interpretation - Comprehensive Abstract Interpretation Framework
- adaptive_
compilation - Adaptive Compilation for ToRSh JIT
- advisor
- Optimization advisor system for JIT compilation
- analysis
- Analysis utilities for JIT compilation
- benchmarking
- Comprehensive Benchmarking Suite for ToRSh JIT
- codegen
- Code generation backend for JIT compilation
- const_
eval - Compile-Time Evaluation for ToRSh JIT
- cranelift_
backend - Cranelift backend for JIT code generation
- custom_
ops - Custom operators for JIT compilation
- debug_
symbols - Debug symbol generation for JIT compilation
- debugger
- Interactive JIT debugger with breakpoints, stepping, and introspection
- differentiable_
compilation - Differentiable Compilation
- error_
diagnostics - Error diagnostics for JIT compilation
- fusion
- Kernel fusion optimization for JIT compilation
- generics
- Generic function support for JIT compilation
- graph
- Computation graph representation and analysis
- hardware_
tuning - Hardware-Specific Tuning for ToRSh JIT
- ir
- Intermediate Representation (IR) for JIT compilation
- llvm_
backend - LLVM Backend for ToRSh JIT Compilation
- lowering
- Graph to IR lowering pass
- metaprogramming
- Metaprogramming support for dynamic code generation and reflection
- mlir_
backend - MLIR Backend for ToRSh JIT Compilation
- neural_
compilation - Neural Compilation
- optimization_
advisor - Intelligent optimization advisor with automated recommendations and analysis
- optimizer
- Graph optimization passes for JIT compilation
- partial_
evaluation - Partial evaluation system for compile-time optimization and specialization
- pgo
- Profile-Guided Optimization for ToRSh JIT
- plugin_
system - Plugin System for ToRSh JIT Compilation
- polyhedral_
optimization - Polyhedral Optimization
- prelude
- Prelude module for convenient imports
- probabilistic_
compilation - Probabilistic Compilation
- profiler
- Profiler integration for JIT compilation
- program_
synthesis - Program Synthesis Module
- runtime
- Runtime execution engine for JIT-compiled code
- script
- Script mode for JIT compilation
- specialization
- Type specialization for JIT compilation
- speculative_
optimization - Speculative Optimization for ToRSh JIT
- symbolic_
execution - Symbolic execution engine for path analysis and constraint solving
- trace_
viz - Trace visualization for JIT compilation
- tracing
- Graph capture and tracing for JIT compilation
- type_
inference - Type inference and shape propagation for JIT compilation
- utils
- Utility functions for common JIT operations
Macros§
- register_
op - Macro for easier custom operator registration
- trace
- Utility macro for easy tracing
Structs§
- Compiled
Kernel - Compiled kernel representation
- Compiled
Module - A compiled module ready for execution
- Execution
Stats - Execution statistics
- JitCompiler
- Main JIT compiler interface
- JitConfig
- JIT compilation configuration
- Kernel
Metadata - Kernel metadata for runtime execution
- Tensor
Desc - Tensor description for kernel interface
- Tensor
Ref - Placeholder for tensor references (will be properly integrated with torsh-tensor)
Enums§
- JitError
- JIT compilation errors
Constants§
Traits§
- Scriptable
Module - Trait for scriptable modules