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"]