使用 C++ API 部署 TVM Module
导航
使用 C++ API 部署 TVM Module#
apps/howto_deploy 中提供了如何部署 TVM 模块的示例,可以使用以下命令运行该示例:
cd apps/howto_deploy
./run_example.sh
获取 TVM 运行时库#
只需要链接到目标平台中的 TVM 运行时。TVM 提供了最小运行时,根据使用的模块数量,运行时的消耗大约在 300K 到 600K 之间。
在大多数情况下,可以使用随 build
而来的 libtvm_runtime.so
。
如果您发现构建 libtvm_runtime
很困难,
请检出 tvm_runtime_pack.cc。
这是在一个文件中提供 TVM 运行时的示例。
您可以使用构建系统编译此文件,并将其包含到项目中。
你也可以签出 apps,例如在 iOS, Android 和其他平台上用 TVM 构建的应用程序。
动态库 vs. 系统模块#
TVM 提供了两种使用编译库的方法。 您可以签出 prepare_test_libs.py 关于如何生成库 和 cpp_deploy.cc 关于如何使用它们。
将库存储为共享库,并将库动态加载到项目中。
以系统模块(module)模式将编译后的库捆绑到项目中。
动态加载更加灵活,可以动态加载新模块。系统模块是更 static
的方法。可以在禁止动态库加载的地方使用系统模块。