tilelang.backend.module¶

Backend module registration and per-compilation context resolution.

Attributes¶

Classes¶

BackendModule

Complete Python registration manifest for one TileLang backend.

BackendContext

Resolved backend state shared by every stage of one compilation.

Functions¶

register_backend(backend)

Validate and register every component declared by a backend manifest.

get_backend(name)

Return a registered backend module by name.

list_backends()

Return a copy of the registered backend modules.

create_backend_context([target, target_host, ...])

Resolve user inputs into the immutable context for one compilation.

Module Contents¶

tilelang.backend.module.BackendCallback¶
tilelang.backend.module.TargetPredicate¶
class tilelang.backend.module.BackendModule¶

Complete Python registration manifest for one TileLang backend.

name: str¶
target_kinds: tuple[str, Ellipsis]¶
pipelines: collections.abc.Mapping[str, tilelang.backend.pass_pipeline.PassPipeline]¶
device_codegens: collections.abc.Mapping[str, tilelang.backend.device_codegen.DeviceCodegen]¶
execution_backends: tuple[tilelang.backend.execution_backend.ExecutionBackendSpec, Ellipsis]¶
supports_target: TargetPredicate | None = None¶
host_codegens: collections.abc.Mapping[str, tilelang.backend.host_codegen.HostCodegen]¶
host_codegen_hooks: collections.abc.Mapping[str, tuple[tilelang.backend.host_codegen.HostCodegenHook, Ellipsis]]¶
callbacks: collections.abc.Mapping[str, BackendCallback]¶
__post_init__()¶
Return type:

None

matches(target)¶

Return whether this backend module owns the target.

Parameters:

target (tvm.target.Target)

Return type:

bool

get_pipeline(target)¶

Return the lowering pipeline declared for the target.

Parameters:

target (tvm.target.Target)

Return type:

tilelang.backend.pass_pipeline.PassPipeline

lower(mod, target)¶

Run this backend’s lowering pipeline for the target.

Parameters:
  • mod (tvm.IRModule)

  • target (tvm.target.Target)

Return type:

tvm.IRModule

get_device_codegen(target)¶

Return the device codegen declared for the target.

Parameters:

target (tvm.target.Target)

Return type:

tilelang.backend.device_codegen.DeviceCodegen

codegen_device(mod, target, *, compile_device)¶

Generate device code for the target.

Parameters:
  • mod (tvm.IRModule)

  • target (tvm.target.Target)

  • compile_device (bool)

Return type:

tvm.IRModule

get_host_codegen(target_host)¶

Return the host codegen declared for the host target.

Parameters:

target_host (tvm.target.Target)

Return type:

tilelang.backend.host_codegen.HostCodegen

codegen_host(mod, target_host)¶

Generate host code for the host target.

Parameters:
  • mod (tvm.IRModule)

  • target_host (tvm.target.Target)

Return type:

tvm.IRModule

preprocess_host_codegen(mod, target_host, target)¶

Apply backend hooks before host code generation.

Parameters:
  • mod (tvm.IRModule)

  • target_host (tvm.target.Target)

  • target (tvm.target.Target)

Return type:

tvm.IRModule

allowed_execution_backends(target, *, include_unavailable=True)¶

Return execution backend names supported by the target.

Parameters:
  • target (tvm.target.Target)

  • include_unavailable (bool)

Return type:

tuple[str, Ellipsis]

resolve_execution_backend(requested, target)¶

Resolve an execution backend policy for the target.

Parameters:
  • requested (str | None)

  • target (tvm.target.Target)

Return type:

tilelang.backend.execution_backend.ExecutionBackendSpec

class tilelang.backend.module.BackendContext¶

Resolved backend state shared by every stage of one compilation.

module: BackendModule¶
target: tvm.target.Target¶
target_host: tvm.target.Target¶
execution_backend: tilelang.backend.execution_backend.ExecutionBackendSpec¶
__post_init__()¶
Return type:

None

property name: str¶

Return the selected backend module name.

Return type:

str

lower(mod)¶

Run the selected backend’s lowering pipeline.

Parameters:

mod (tvm.IRModule)

Return type:

tvm.IRModule

codegen_device(mod, *, compile_device=None)¶

Generate device code using the selected execution policy by default.

Parameters:
  • mod (tvm.IRModule)

  • compile_device (bool | None)

Return type:

tvm.IRModule

preprocess_host_codegen(mod)¶

Apply selected-backend hooks before host code generation.

Parameters:

mod (tvm.IRModule)

Return type:

tvm.IRModule

codegen_host(mod)¶

Generate host code for the resolved host target.

Parameters:

mod (tvm.IRModule)

Return type:

tvm.IRModule

tilelang.backend.module.register_backend(backend)¶

Validate and register every component declared by a backend manifest.

Parameters:

backend (BackendModule)

Return type:

BackendModule

tilelang.backend.module.get_backend(name)¶

Return a registered backend module by name.

Parameters:

name (str)

Return type:

BackendModule

tilelang.backend.module.list_backends()¶

Return a copy of the registered backend modules.

Return type:

dict[str, BackendModule]

tilelang.backend.module.create_backend_context(target='auto', target_host=None, execution_backend='auto')¶

Resolve user inputs into the immutable context for one compilation.

Parameters:
  • target (str | dict[str, object] | tvm.target.Target)

  • target_host (str | dict[str, object] | tvm.target.Target | None)

  • execution_backend (str | None)

Return type:

BackendContext