使用 C++ API 部署 TVM 模块#
在 apps/howto_deploy 中提供了关于如何部署 TVM 模块的示例。
要运行该示例,您可以使用以下命令
cd apps/howto_deploy
./run_example.sh
获取 TVM 运行时库#
唯一需要的是在您的目标平台上链接到 TVM 运行时。TVM 提供了最小运行时,其大小约为 300K 到 600K,具体取决于使用的模块数量。在大多数情况下,可以使用构建时附带的 libtvm_runtime.so
。
如果您发现构建 libtvm_runtime
很困难,请查看 tvm_runtime_pack.cc。这是包含 TVM 运行时的单文件示例。您可以使用您的构建系统编译此文件并将其包含到您的项目中。
您还可以查看 apps 以获取在 iOS、Android 和其他平台上使用 TVM 构建的示例应用程序。
动态库与系统模块#
TVM 提供了两种使用编译库的方式。您可以查看 prepare_test_libs.py 了解如何生成库,以及 cpp_deploy.cc 了解如何使用它们。
将库存储为共享库,并动态加载到您的项目中。
以系统模块模式将编译后的库捆绑到您的项目中。
动态加载更加灵活,可以动态加载新模块。系统模块是一种更“静态”的方法。可以在禁止动态库加载的地方使用系统模块。