I have a simple TVMScript program:
```
import tvm
from tvm.ir.module import IRModule
from tvm.script import tir as T

@T.prim_func
def main(A: T.Buffer[(128,), "float32"], 
            B: T.Buffer[(128,), "float32"], 
            C: T.Buffer[(128,), "float32"]):
    T.func_attr({"global_symbol": "main", "tir.noalias": True})
    for i in range(128):
        with T.block("C"):
            vi = T.axis.spatial(128, i)
            C[vi] = A[vi] + B[vi]

mod = tvm.IRModule.from_expr(main)
print(mod["main"].script())
```

Can I provide an external definition fo the kernel:
```
import tvm
from tvm.ir.module import IRModule
from tvm.script import tir as T

def foo(A, B, C):
    # Convert A,B,C to numpy.ndarray or something?
    __ my_random_kernel(A, B, C)

@T.prim_func
def main(A: T.Buffer[(128,), "float32"], 
            B: T.Buffer[(128,), "float32"], 
            C: T.Buffer[(128,), "float32"]):
    T.func_attr({"global_symbol": "main", "tir.noalias": True})
    foo(A, B, C)
```

It seems like external definitions can only be provided at the Tensor 
Expression level 
https://tvm.apache.org/docs/v0.9.0/how_to/work_with_schedules/extern_op.html.

Is there a way to provide external function definitions at the TVMScript level?





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/provide-external-functions-as-tvmscript/18371/1)
 to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.apache.org/email/unsubscribe/643ee2f91e0923d019cfcd474cbb7775dd300fc8aa9cebc183c89d04c3438152).

Reply via email to