Skip to content

Gpu allocs

gpu_allocs

GpuAllocPattern

Bases: RewritePattern

Source code in xdsl/transforms/gpu_allocs.py
14
15
16
17
18
19
20
21
22
23
class GpuAllocPattern(RewritePattern):
    @op_type_rewrite_pattern
    def match_and_rewrite(self, op: memref.AllocOp, rewriter: PatternRewriter, /):
        rewriter.replace_op(
            op,
            gpu.AllocOp.build(
                operands=[None, op.dynamic_sizes, op.symbol_operands],
                result_types=[op.memref.type, None],
            ),
        )

match_and_rewrite(op: memref.AllocOp, rewriter: PatternRewriter)

Source code in xdsl/transforms/gpu_allocs.py
15
16
17
18
19
20
21
22
23
@op_type_rewrite_pattern
def match_and_rewrite(self, op: memref.AllocOp, rewriter: PatternRewriter, /):
    rewriter.replace_op(
        op,
        gpu.AllocOp.build(
            operands=[None, op.dynamic_sizes, op.symbol_operands],
            result_types=[op.memref.type, None],
        ),
    )

GpuDellocPattern

Bases: RewritePattern

Source code in xdsl/transforms/gpu_allocs.py
26
27
28
29
class GpuDellocPattern(RewritePattern):
    @op_type_rewrite_pattern
    def match_and_rewrite(self, op: memref.DeallocOp, rewriter: PatternRewriter, /):
        rewriter.replace_op(op, gpu.DeallocOp(op.memref))

match_and_rewrite(op: memref.DeallocOp, rewriter: PatternRewriter)

Source code in xdsl/transforms/gpu_allocs.py
27
28
29
@op_type_rewrite_pattern
def match_and_rewrite(self, op: memref.DeallocOp, rewriter: PatternRewriter, /):
    rewriter.replace_op(op, gpu.DeallocOp(op.memref))

MemRefToGPUPass dataclass

Bases: ModulePass

Source code in xdsl/transforms/gpu_allocs.py
32
33
34
35
36
37
38
39
40
41
42
43
44
class MemRefToGPUPass(ModulePass):
    name = "memref-to-gpu"

    def apply(self, ctx: Context, op: ModuleOp) -> None:
        walker = PatternRewriteWalker(
            GreedyRewritePatternApplier(
                [
                    GpuAllocPattern(),
                    GpuDellocPattern(),
                ]
            )
        )
        walker.rewrite_module(op)

name = 'memref-to-gpu' class-attribute instance-attribute

apply(ctx: Context, op: ModuleOp) -> None

Source code in xdsl/transforms/gpu_allocs.py
35
36
37
38
39
40
41
42
43
44
def apply(self, ctx: Context, op: ModuleOp) -> None:
    walker = PatternRewriteWalker(
        GreedyRewritePatternApplier(
            [
                GpuAllocPattern(),
                GpuDellocPattern(),
            ]
        )
    )
    walker.rewrite_module(op)