Skip to content

SPIRV

-iree-convert-to-spirvlink

Perform the final conversion to SPIR-V dialect

Optionslink

-index-bits : Specify the bit widths for SPIR-V indices

-iree-spirv-annotate-winograd-loopslink

Annotate innermost Winograd loops with spirv distribute attribute

-iree-spirv-breakdown-large-vectorlink

Break down vectors not natively supported by SPIR-V

-iree-spirv-convert-gpu-targetlink

Convert #iree_gpu.target into #spirv.target_env

-iree-spirv-emulate-i64link

Emulate 64-bit integer ops with 32-bit integer ops

-iree-spirv-erase-storage-buffer-static-shapelink

Turn static shaped storage buffer subspan ops into dynamic shaped ones

-iree-spirv-final-vector-loweringlink

Perform final lowering of vectors ops to fit SPIR-V

-iree-spirv-initial-vector-loweringlink

Perform initial lowering of vectors ops to fit SPIR-V

Links SPIR-V HAL executables within the top-level program module.

-iree-spirv-lower-executable-target-passlink

Lower the executable target to SPIR-V using one of the IREE::HAL::DispatchLoweringPassPipeline

Main pass to lower executables to scalar + vector code on SPIR-V path. Invokes one of the pass pipelines that translate the executable to scalar + vector code.

-iree-spirv-lower-executable-using-transform-dialectlink

Lower the executable target to SPIR-V using transform dialect followed by some passes to do SPIR-V specific vectorization

Pass to lower executables using Transform dialect on the SPIR-V backend. This shouldnt be a separate pass, but it is since there are some extra spir-v passes that need to be run as well.

-iree-spirv-map-memref-storage-classlink

Map MemRef memory spaces to SPIR-V storage classes

-iree-spirv-materialize-executable-conditionslink

Materialize SPIR-V target requirements of hal.exectuable.variant ops into hal.executable.condition regions

-iree-spirv-select-lowering-strategy-passlink

Select the IREE::HAL::DispatchLoweringPassPipeline for loweringto SPIR-V

-iree-spirv-tile-and-distributelink

Tile and distribute Linalg ops with buffer semantics to invocations

-iree-spirv-tile-and-promotelink

Promote tiled Linalg ops with buffer semantics to use workgroup memory and then tile to invocations

Optionslink

-promote-c   : Promote C matrix to use shared memory
-skip-thread : Skip tiling and distributing to GPU threads

-iree-spirv-tile-to-cooperative-opslink

Tile Linalg ops with buffer semantics to subgroups and vectorize to vector ops suitable for lowering to SPIR-V cooperative ops

-iree-spirv-trim-executable-target-envlink

Trim the SPIR-V target environment of a HAL executable variant to the minimal requirement per the compiled spirv.module op needs

-iree-spirv-vector-to-gpu-subgroup-mma-opslink

Pass to convert vector ops to GPU subgroup MMA ops.

-iree-spirv-vectorize-load-storelink

Vectorize load/store of memrefs for better memory access

Converts memref of scalar to memref of vector of efficent size. This will allow to convert memory accesses to vector load/store in SPIR-V without having pointer bitcast.

-iree-spirv-vectorize-to-cooperative-opslink

Tile Linalg ops with buffer semantics to subgroups and vectorize to vector ops suitable for lowering to SPIR-V cooperative ops