五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

部署模型并與 TVM 集成

2023-08-09 12:52 作者:HyperAI超神經(jīng)  | 我要投稿

本篇文章譯自英文文檔?Deploy Models and Integrate TVM?

https://tvm.apache.org/docs/how_to/deploy/index.html

更多 TVM 中文文檔可訪問 →Apache TVM 是一個端到端的深度學(xué)習(xí)編譯框架,適用于 CPU、GPU 和各種機器學(xué)習(xí)加速芯片。 | Apache TVM 中文站

https://tvm.hyper.ai/


本節(jié)介紹如何將 TVM 部署到各種平臺,以及如何將其與項目集成。

構(gòu)建 TVM runtime 庫

不同于傳統(tǒng)的深度學(xué)習(xí)框架,TVM 堆棧分為兩個主要組件:

  • TVM compiler:負責(zé)模型的編譯和優(yōu)化。

  • TVM runtime:在目標(biāo)設(shè)備上運行。

集成編譯后的模塊并不需要在目標(biāo)設(shè)備上構(gòu)建整個 TVM,只需在你的電腦上構(gòu)建 TVM 編譯器堆棧,然后用來交叉編譯要部署到目標(biāo)設(shè)備上的模塊。

這里只需利用可集成到各種平臺的輕量級 runtime API 即可。

例如,可在基于 Linux 的嵌入式系統(tǒng)(如樹莓派)上,運行以下命令來構(gòu)建 runtime API:

注意:make runtime 僅構(gòu)建 runtime 庫。

也可以交叉編譯 runtime 庫,但不要和嵌入式設(shè)備的交叉編譯模型混淆。

若要包含其他 runtime(例如 OpenCL),可以修改 config.cmake 來啟用這些選項。獲取 TVM runtime 庫后,就可以鏈接編譯好的庫了。

TVM 可針對不同架構(gòu)(例如 x64_64 主機上的 aarch64)交叉編譯模型(無論是否被 TVM 優(yōu)化)。一旦模型被交叉編譯,runtime 必須與目標(biāo)架構(gòu)兼容,才能運行交叉編譯的模型。

為其他架構(gòu)交叉編譯 TVM runtime

在 上面 的示例中,runtime 庫是在樹莓派上編譯的,與樹莓派等目標(biāo)設(shè)備相比,在擁有高性能芯片和充足資源的主機(如筆記本電腦、工作站)上生成 runtime 庫的速度要快得多。為了交叉編譯 runtime,必須安裝目標(biāo)設(shè)備的工具鏈。安裝正確的工具鏈后,與原生編譯相比,主要區(qū)別在于向 cmake 傳遞了一些額外的命令行參數(shù)來指定要使用的工具鏈。例如,在現(xiàn)代筆記本電腦(使用 8 個線程)上為 aarch64 構(gòu)建 TVM runtime 庫需要大約 20 秒,而在樹莓派 4 上構(gòu)建 runtime 需要約 10 分鐘。

aarch64 的交叉編譯

對于 ARM 裸機,用以下工具鏈(而不是 gcc-aarch64-linux-*)來安裝非常方便:

RISC-V 的交叉編譯

file 命令可用于查詢生成的 runtime 的架構(gòu)。

針對目標(biāo)設(shè)備優(yōu)化和調(diào)優(yōu)模型

在嵌入式設(shè)備上對 TVM 內(nèi)核進行測試、調(diào)優(yōu)和基準(zhǔn)測試,最簡單且推薦的方法是通過 TVM 的 RPC API。下面是相關(guān)教程的鏈接:

  • 交叉編譯和 RPC?https://tvm.hyper.ai/docs/tutorial/rpc

  • 在樹莓派上部署預(yù)訓(xùn)練模型https://tvm.apache.org/docs/how_to/deploy_models/deploy_model_on_rasp.html#tutorial-deploy-model-on-rasp

在目標(biāo)設(shè)備上部署優(yōu)化模型

完成調(diào)優(yōu)和基準(zhǔn)測試后,要在目標(biāo)設(shè)備上以不依賴 RPC 的方式來部署模型。具體操作參考以下教程:

  • 使用 C++ API 部署 TVM 模塊?https://tvm.hyper.ai/docs/how_to/deploy/deploy_c++

  • 部署到 Android?https://tvm.hyper.ai/docs/how_to/deploy/deploy_android

  • 將 TVM 集成到項目中?https://tvm.hyper.ai/docs/how_to/deploy/integrate

  • HLS 后端示例?https://tvm.hyper.ai/docs/how_to/deploy/hls

  • Relay Arm? 計算庫集成?https://tvm.hyper.ai/docs/how_to/deploy/relay_arm

  • Relay TensorRT 集成?https://tvm.hyper.ai/docs/how_to/deploy/relay_tensorrt

  • Vitis AI 集成?https://tvm.hyper.ai/docs/how_to/deploy/vitis_ai

  • Relay BNNS 集成?https://tvm.hyper.ai/docs/how_to/deploy/relay_bnns

其他部署方法

前面已經(jīng)有許多針對特定設(shè)備的操作指南,其中包含 Python 代碼的示例(可用 Jupyter Notebook 查看),這些操作指南描述了如何準(zhǔn)備模型,并將其部署到支持的后端。

  • 部署深度學(xué)習(xí)模型?https://tvm.hyper.ai/docs/how_to/deploy/deploy_models



部署模型并與 TVM 集成的評論 (共 條)

分享到微博請遵守國家法律
乐都县| 稻城县| 大同县| 富裕县| 郎溪县| 庆城县| 安丘市| 津市市| 平安县| 咸阳市| 夏津县| 庆云县| 黔西县| 河北区| 安吉县| 黔西| 卓资县| 蓬莱市| 洛隆县| 长武县| 博乐市| 万宁市| 德惠市| 新源县| 大余县| 太和县| 鄂托克旗| 长沙市| 大埔县| 南宫市| 沂南县| 凤山县| 辉县市| 克拉玛依市| 安远县| 南靖县| 凤山市| 搜索| 高邮市| 开阳县| 墨竹工卡县|