tvm
Loading...
Searching...
No Matches
Namespaces | Functions
transform.h File Reference

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>
Include dependency graph for transform.h:
This graph shows which files directly or indirectly include this file:

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.
 

Detailed Description

S-TIR specific transformation passes.