tvm
tvm copied to clipboard
[SVE] Implement scalable vectors in TVM
This prototype is to accompany the open SVE RFC. It implements the design outlined in the RFC.
The main changes to the stack include:
-
tir.splitcan accept an expression with vscale as a factor -
LoopVectorizercan createRampandBroadcastnodes with scalable lanes -
BufferLoadandBufferStorenodes can accept an optional predicate which is created inLoopVectorizer -
LLVM codegen can lower the scalable predicated vectors into
llvm.masked.*intrinsics
The prototype is currently missing tir.tile ~and TVMScript parser support for predicates~.
tir.splitcan accept an expression with vscale as a factorLoopVectorizercan createRampandBroadcastnodes with scalable lanesBufferLoadandBufferStorenodes can accept an optional predicate which is created inLoopVectorizer- LLVM codegen can lower the scalable predicated vectors into
llvm.masked.*intrinsicsThe prototype is currently missing
tir.tileand TVMScript parser support for predicates.
Hi @ekalda ,
Very nice work !
I can't comment much, I think this implementation is a careful step toward SVE. Will test this on some RVV CPU implementation to see a walk through the LLVM masked.* things.
@tvm-bot rerun