tvm_tirx.backend.cuda.transform.BindBackendConfig

tvm_tirx.backend.cuda.transform.BindBackendConfig#

tvm_tirx.backend.cuda.transform.BindBackendConfig()#

Resolve CUDA function and device-entry compilation settings.

Run after BindTarget and before tile dispatch. Function defaults and entry overrides become target and JSON backend_config attributes; non-CUDA functions are unchanged.

Examples

import tvm_tirx as tvm
from tvm_tirx.script import tirx as T
from tvm_tirx.backend.config import backend_config_json
from tvm_tirx.backend.cuda.backend_config import resolve_backend_config
from tvm_tirx.backend.cuda.transform import BindBackendConfig

target = tvm.target.Target({"kind": "cuda", "arch": "sm_90a"})
config = backend_config_json({"cuda": resolve_backend_config(target=target)})

@T.ir_module
class Before:
    @T.function
    def main(A: T.Tensor((1,), "int32")):
        T.func_attr({"target": target})
        with T.device_entry():
            A[0] = 1

@T.ir_module
class Expected:
    @T.function
    def main(A: T.Tensor((1,), "int32")):
        T.func_attr({"target": target, "backend_config": config})
        with T.device_entry(attrs={"target": target, "backend_config": config}):
            A[0] = 1

after = BindBackendConfig()(Before)
tvm.ir.assert_structural_equal(after, Expected)