Expand description
IR optimization passes for NxPU.
Provides a Pass trait, a PassManager with fixed-point iteration,
and built-in optimization passes (constant folding, FMA fusion, dead code
elimination).
Re-exports§
pub use calibrate::CalibrationDataset;pub use calibrate::CalibrationError;pub use calibrate::CalibrationMethod;pub use calibrate::CalibrationResult;pub use calibrate::HistogramCollector;pub use calibrate::TensorHistogram;pub use calibrate::calibrate;pub use calibrate::calibrate_kl_divergence;pub use calibrate::calibrate_minmax;pub use calibrate::calibrate_percentile;pub use calibrate::per_channel_quantize;pub use calibrate::run_calibration;pub use fusion::OperatorFusion;pub use layout::LayoutTransform;pub use layout::TransposeInsertion;pub use layout::TransposeRecord;pub use layout::layout_permutation;pub use layout::reorder_dims;pub use memory::LiveInterval;pub use memory::MemoryPlanning;pub use memory::plan_memory;pub use quantize::CalibrationData;pub use quantize::F32ToBf16;pub use quantize::F32ToF16;pub use quantize::F32ToInt8;pub use quantize::MixedPrecisionPass;pub use quantize::MixedPrecisionPolicy;pub use quantize::PerChannelQuantParams;pub use quantize::QuantizationParams;pub use schedule::Schedule;pub use schedule::SchedulePass;pub use schedule::ScheduleSlot;pub use schedule::compute_schedules;pub use schedule::format_schedule;pub use shape::ShapeInference;pub use tiling::Conv2DShape as TilingConv2DShape;pub use tiling::MatMulShape as TilingMatMulShape;pub use tiling::TileConfig;pub use tiling::TilingDefaults;pub use tiling::TilingPass;pub use tiling::TilingPlan;pub use tiling::tile_conv2d;pub use tiling::tile_matmul;pub use vectorize::VectorWidth;pub use vectorize::VectorizationHint;pub use vectorize::VectorizationPass;pub use vectorize::analyze_vectorization;pub use workgroup::OccupancyResult;pub use workgroup::WorkgroupHwParams;pub use workgroup::WorkgroupOptimization;pub use workgroup::calculate_occupancy;pub use workgroup::optimize_workgroup_size;
Modules§
- calibrate
- Calibration pipeline for quantization.
- fusion
- Operator fusion pass.
- layout
- Memory layout optimization pass.
- memory
- Memory planning and buffer allocation pass.
- quantize
- Precision conversion passes for NPU quantization.
- schedule
- Operation scheduling pass.
- shape
- Shape inference pass.
- tiling
- Loop tiling and cache blocking.
- vectorize
- SIMD vectorization hints.
- workgroup
- Workgroup size optimization.
Structs§
- Buffer
Allocation - A buffer allocation for a single tensor.
- Common
Subexpr Elimination - Common subexpression elimination pass.
- Constant
Folding - Folds constant expressions (literal operands) at compile time.
- Dead
Code Elimination - Removes unused
Emitstatements and unreferenced local variables from function bodies. - FmaFusion
- Fuses multiply-add patterns into
fmamath operations. - IrValidation
- Validates IR structural invariants. Returns
false(never modifies the module). - Memory
Plan - The result of memory planning: buffer assignments and peak usage.
- Pass
Manager - Runs passes in sequence with fixed-point iteration.
- Tensor
Id - A unique identifier for a tensor in the memory plan.
- Validation
Warning - A validation warning describing a structural issue in the IR.
Enums§
- OptLevel
- Optimization level.
Traits§
- Pass
- An optimization pass that transforms an IR module.
Functions§
- collect_
warnings - Collect all validation warnings for a module without logging.
- optimize
- Convenience function: runs O1 optimization passes on a module.