|
tvm
|
S-TIR specific transformation passes. More...
#include <tvm/ir/prim/expr.h>#include <tvm/ir/transform.h>#include <tvm/s_tir/stmt.h>#include <tvm/target/target.h>#include <tvm/tirx/transform.h>#include <string>#include <vector>Go to the source code of this file.
Namespaces | |
| namespace | tvm |
| An object that builds and maintains block scope and StmtSref mapping for Dependence analysis. | |
| namespace | tvm::s_tir |
| namespace | tvm::s_tir::transform |
Functions | |
| Pass | tvm::s_tir::transform::ConvertSSA () |
| De-duplicate definitions, including schedulable block iterators, across Functions. | |
| Pass | tvm::s_tir::transform::StmtSimplify () |
| Simplify schedulable TIR using block iteration constraints and shared simplifier options. | |
| Pass | tvm::s_tir::transform::CanonicalizeLoop () |
| Canonicalize loop to start from zero . | |
| Pass | tvm::s_tir::transform::LowerCrossThreadReduction () |
| Lower cross-thread reduction from thread bindings to intrinsic function calls. | |
| Pass | tvm::s_tir::transform::LowerInitBlock () |
| Lower block init stmt into If stmts. | |
| Pass | tvm::s_tir::transform::PlanAndUpdateTensorAllocationLocation () |
| Locate the tensor allocation to the exact position (usually is the lca of tensor access). This pass will inject opaque block with alloc_tensors at the allocation site. | |
| Pass | tvm::s_tir::transform::ConvertBlocksToOpaque () |
| Substitute all the block vars with the PrimExprs they are bound to, indicated by the corresponding iter_values in BlockRealize, for opaque blocks by removing all . the iter_values in BlockRealize and iter_vars in Block. | |
| Pass | tvm::s_tir::transform::LiftThreadBinding () |
| Lift the same thread bindings to their LCA loops. | |
| Pass | tvm::s_tir::transform::CompactTensorAllocation (bool is_strict=true) |
| Compact the tensor access region by removing the tensor regions that are not accessed, i.e. narrowing the tensor shape and adjust the access region if necessary. | |
| Pass | tvm::s_tir::transform::LowerMatchTensor () |
| Remove match tensors inside the block. Also, it will validate the binding. | |
| Pass | tvm::s_tir::transform::InjectPermutedLayout () |
| Inject permuted layout for shared memory. | |
| Pass | tvm::s_tir::transform::TransformMmaTensorLayout () |
| Transform Mma scope (m16n8k8.matrixA/B/C) to local scope with layout transformation. | |
| Pass | tvm::s_tir::transform::LowerOpaqueBlock () |
| Remove the block to ensure that the TIR can not be scheduled again. Run LoopPartition first when thread-binding loops carry loop_partition_hint. | |
| Pass | tvm::s_tir::transform::LowerThreadBinding () |
| Lower thread-binding loops to fresh lexical launch regions. Run after LoopPartition and LowerOpaqueBlock, while retaining loops for scheduling and feature extraction before this boundary. | |
| Pass | tvm::s_tir::transform::InjectSoftwarePipeline () |
| This pass transforms annotated loops into pipelined ones where producers and consumers are overlapped with the information provided in loop annotations, which enables optimization techniques like prefetching and pipeline parallelism. | |
| Pass | tvm::s_tir::transform::LowerAutoCopy () |
| Automatically do memory optimizations for auto copy blocks. | |
| Pass | tvm::s_tir::transform::ManifestSharedMemoryLocalStage () |
| Add the explicit local stage for the shared memory access on GPU. | |
| Pass | tvm::s_tir::transform::AnnotateIrregularLoop () |
| Annotate irregular loop mark. | |
| Pass | tvm::s_tir::transform::LoopPartition () |
| partition loops in the stmt. | |
| Pass | tvm::s_tir::transform::InjectVirtualThread () |
| Inject virtual thread loops. | |
| Pass | tvm::s_tir::transform::RewriteUnsafeSelect () |
| Detect and rewrite unsafe select that contains memory access. | |
| Pass | tvm::s_tir::transform::LowerVtcmAlloc () |
| Lower VTCM allocations. | |
| Pass | tvm::s_tir::transform::ThreadSync (tvm::ffi::String storage_scope) |
| Insert sync between parallel read/write of shared buffers. | |
| Pass | tvm::s_tir::transform::LowerSynchronization () |
| Lower asynchronous queue operations and remove synchronization regions. Run after ThreadSync and optional InjectPTXAsyncCopy. | |
| Pass | tvm::s_tir::transform::InferFragment () |
| Infer the TensorCore fragment information using tensor intrinsics. | |
| Pass | tvm::s_tir::transform::LowerThreadAllreduce () |
| Lower cross thread allreduce. | |
| Pass | tvm::s_tir::transform::InjectPTXAsyncCopy () |
| Rewrite global to shared memory copy on CUDA with asynchronous copy. | |
| Pass | tvm::s_tir::transform::MergeSharedMemoryAllocations () |
| Merge multiple TIR-level shared memory allocations into one. | |
| Pass | tvm::s_tir::transform::DefaultGPUSchedule () |
| Set default thread bindings for GPU Functions. | |
| Pass | tvm::s_tir::transform::RemoveWeightLayoutRewriteBlock (bool skip_tensor_rewrite=false) |
| Remove weight layout rewrite block before benchmark. | |
| Pass | tvm::s_tir::transform::RemoveStoreUndef () |
| Remove stores of tirx::undef_op. | |
S-TIR specific transformation passes.