torch-mlir/python/samples/compiled_add.py

36 lines
909 B
Python

import numpy as np
from npcomp.compiler import test_config
from npcomp.compiler.backend import refjit
from npcomp.compiler.frontend import *
from npcomp.compiler.target import *
def compile_function(f):
fe = ImportFrontend(config=test_config.create_test_config(
target_factory=GenericTarget32))
fe.import_global_function(f)
compiler = refjit.CompilerBackend()
vm_blob = compiler.compile(fe.ir_module)
loaded_m = compiler.load(vm_blob)
return loaded_m[f.__name__]
global_data = (np.zeros((2, 3)) + [1.0, 2.0, 3.0] * np.reshape([1.0, 2.0],
(2, 1)))
a = np.asarray([1.0, 2.0], dtype=np.float32)
b = np.asarray([3.0, 4.0], dtype=np.float32)
@compile_function
def global_add():
return np.add(a, np.add(b, a))
assert global_add.__isnpcomp__
# CHECK: GLOBAL_ADD: [5. 8.]
result = global_add()
print("GLOBAL_ADD:", result)