Python 端部署

Python 端部署#

加载 Python 库:

import tvm
import numpy as np

用于部署的常规动态加载方法:

mod_dylib = tvm.runtime.load_module("libs/test_addone_dll.so")

从模块中获取函数:

f = mod_dylib["addone"]

使用 tvm.nd.array() 将 numpy ndarray 转换为 tvm ndarray 类型,以便正常调用该函数:

N = 10
x = tvm.nd.array(np.arange(N, dtype=np.float32))
y = tvm.nd.array(np.zeros(N, dtype=np.float32))

调用函数:

f(x, y)

验证正确性:

np_x = x.numpy()
np_y = y.numpy()
assert np.all([xi + 1 == yi for xi, yi in zip(np_x, np_y)])

也可以加载静态库:

mod_syslib = tvm.runtime.load_module("libs/test_addone_sys.o")
f = mod_syslib["addonesys"]