RK3588安装TVM-CPU版本

2023-12-12 16:28
文章标签 安装 版本 cpu rk3588 tvm

本文主要是介绍RK3588安装TVM-CPU版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.背景

        TVM是一个开源的机器学习编译器栈,用于优化和编译深度学习模型,以在各种硬件平台上实现高效性能。以下是关于TVM的详细介绍:

  1. TVM的目标是将深度学习模型的优化和编译过程自动化,以便开发人员可以轻松地将其模型部署到各种硬件平台上,包括CPU、GPU、FPGA等。
  2. TVM的核心功能包括自动优化、代码生成和硬件抽象。它可以根据硬件平台的特点自动调整模型的计算图,生成高效的代码,并通过硬件抽象层与底层硬件交互。
  3. TVM支持多种深度学习框架,包括TensorFlow、PyTorch、MXNet等。这意味着开发人员可以使用他们熟悉的框架来开发模型,并将其转换为TVM可优化的格式。
  4. TVM还具有可扩展性和灵活性。它允许开发人员自定义优化策略和硬件后端,以适应特定的应用场景和硬件平台。
  5. 在性能方面,TVM通过优化计算图和利用硬件特性来提高模型的执行效率。它还可以与其他编译器和优化工具集成,以进一步提高性能。
  6. 最后,TVM是一个开源项目,得到了广泛的社区支持和贡献。这意味着开发人员可以从社区中获取支持和帮助,并与其他人共享他们的工作和成果。

        TVM可以在ARM开发板上进行部署和优化。以下是TVM在ARM开发板上的一些应用和优化方法:

  1. 模型优化:TVM可以根据ARM开发板的硬件特性,自动优化深度学习模型的计算图,以提高执行效率。它可以通过减少计算量、优化内存访问和利用硬件加速等方法来改进模型性能。
  2. 代码生成:TVM可以生成适应ARM开发板的机器代码。它可以根据ARM的指令集和硬件特性,生成高效的汇编代码或C++代码,以实现模型的高效执行。
  3. 硬件抽象:TVM通过硬件抽象层与底层硬件交互,可以屏蔽不同ARM开发板之间的硬件差异。这意味着开发人员可以在不同的ARM开发板上使用相同的TVM接口和工具链,简化了开发和部署过程。
  4. 深度学习框架支持:TVM支持多种深度学习框架,包括TensorFlow、PyTorch等。开发人员可以使用他们熟悉的框架来开发模型,并将其转换为TVM可优化的格式,以便在ARM开发板上进行部署和优化。
  5. 自定义优化策略和硬件后端:TVM具有可扩展性和灵活性,允许开发人员自定义优化策略和硬件后端。这意味着开发人员可以根据ARM开发板的具体特性和需求,定制适合该平台的优化策略和硬件后端,以进一步提高性能。
  6. 社区支持和贡献:TVM是一个开源项目,得到了广泛的社区支持和贡献。开发人员可以从社区中获取支持和帮助,并与其他人共享他们的工作和成果,以推动TVM在ARM开发板上的应用和优化。

2. 源码安装

(1)下载源码

        TVM源码地址:https://github.com/apache/tvm/tags

        通过Downloads下载就行了。

(2)详细步骤

根据博客在RK3588 CPU 安装TVM - 知乎

        第1步-第3步都可以按照博主的步骤来

step1:准备环境

sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo5 libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev

如果出现CMake版本不匹配时可以通过源码安装。采用源码方式安装3.18.6版本。源码下载路径:https://cmake.org/files/

$ tar zxvf cmake-3.18.6.tar.gz
cmake-3.18.6$ ./configure
cmake-3.18.6$ make -j4
cmake-3.18.6$ sudo make install
重启设备

step2:查看(1)的源码下载下来

tar zxvf apache-tvm-src-v0.10.0.tar.gz
cd apache-tvm-src-v0.10.0
mkdir build
cp cmake/config.cmake build

step3:准备llvm

TVM的CPU代码生成需要LLVM(4.0或者更高版本)。

下载预编译的llvm 14.0.0版本 https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.0

解压到指定路径,并将解压后的bin目录添加到PATH。

tar xvf clang+llvm-14.0.0-aarch64-linux-gnu.tar.xz
vim ~/.bashrc
export PATH=$PATH:/home/firefly/clang+llvm-14.0.0-aarch64-linux-gnu/bin
source ~/.bashrc

在build/config.cmake 编辑set(USE_LLVM /home/username/clang+llvm-14.0.0-aarch64-linux-gnu/bin/llvm-config)

set(USE_LLVM ON):这里的ON在build/config.cmake 中替换掉

set(USE_CCACHE AUTO) 加速TVM编译

step4:开始编译

cd build
cmake .. -G Ninja
ninja

step5:安装Python版本的tvm

        如果相关的库没有安装,根据提示进行安装即可,我将我的贴出来

sudo vim ~/.bashrc

export TVM_HOME=/path/to/tvm # 编译的python/tvm路径

# export TVM_HOME=/home/ubuntu/apache-tvm-src-v0.14.0/python/tvm
# export PYTHONPATH=$TVM_HOME/python3.7:${PYTHONPATH}
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}

source ~/.bashrc

cd /home/ubuntu/apache-tvm-src-v0.10.0/python 
python3.7 setup.py install --user # 我的是3.7,根据自己的修改

        到此,已经安装完成

3. 样例执行

1、下载模型

wget https://github.com/onnx/models/raw/b9a54e89508f101a1611cd64f4ef56b9cb62c7cf/vision/classification/resnet/model/resnet50-v2-7.onnx

2、编辑脚本 tvmcpythonintro.py

from tvm.driver import tvmc
model = tvmc.load('resnet50-v2-7.onnx')
tvmc.tune(model, target="llvm")
package = tvmc.compile(model, target="llvm", tuning_records = "records.log")
result = tvmc.run(package, device="cpu")
print(result )

这篇关于RK3588安装TVM-CPU版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485238

相关文章

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas