• 在Jetson Nano上安装MNN深度学习框架


    1.简介

    本页面将指导您在Jetson Nano上安装阿里巴巴的MNN框架。在最新的版本中,MNN框架还支持CUDA。这使得它成为Jetson Nano作为一个轻量级框架的理想选择。给出的C++代码示例是在Nano的code::Blocks IDE中编写的。我们只指导您完成基础知识,所以最终您可以构建自己的应用程序。有关MNN库的更多信息,请参阅这里的文档。也许没有必要,但是安装的是C++版本, 不适合Python。

    2.依赖

    MNN框架有一些依赖项。它需要protobuf。OpenCV被用于构建C++示例,而MNN不需要OpenCV。在使用Linux Tegra操作系统的Jetson Nano上安装MNN的步骤如下。

    # check for updates
    $ sudo apt-get update
    $ sudo apt-get upgrade
    # install dependencies
    $ sudo apt-get install cmake wget
    $ sudo apt-get install libprotobuf-dev protobuf-compiler
    $ sudo apt-get install libglew-dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在编译MNN软件之前,有一件事要做。MNN Vulkan接口使用OpenGL ES 3.0库。它是一个用于Android的低级图形渲染界面。幸运的是,它与Jetson Nano上的JetPack 4.4中的2.0版本库向后兼容。而且,据我们所知,MNN框架不使用任何独特的3.0版本调用。它使得使用符号链接将libGLES3.0重定向到libGLES2.0成为可能。这种策略非常有效,可以将您从安装3.0版本的繁琐过程中解放出来。

    # make symlink
    $ sudo ln -s /usr/lib/aarch64-linux-gnu/libGLESv2.so /usr/lib/aarch64-linux-gnu/libGLESv3.so
    
    • 1
    • 2

    3.安装

    安装了依赖项之后,就可以构建库了。

    # download MNN
    $ git clone https://github.com/alibaba/MNN.git
    # common preparation (installing the flatbuffers)
    $ cd MNN
    $ ./schema/generate.sh
    # install MNN
    $ mkdir build
    $ cd build
    # generate build script
    $ cmake -D CMAKE_BUILD_TYPE=Release \
            -D MNN_BUILD_QUANTOOLS=ON \
            -D MNN_BUILD_CONVERTER=ON \
           -D MNN_OPENGL=ON \
           -D MNN_VULKAN=ON \
           -D MNN_CUDA=ON \
            -D MNN_TENSORRT=OFF \
            -D MNN_BUILD_DEMO=ON \
            -D MNN_BUILD_BENCHMARK=ON ..
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    CMake MNN Jetson

    是时候构建库并将其安装到适当的文件夹中了。

    # build MNN (± 25 min)
    $ make -j4
    $ sudo make install
    $ sudo cp ./source/backend/cuda/*.so /usr/local/lib/
    # don't copy until MNN has solved the issues with the TensorRT backend
    # $ sudo cp ./source/backend/tensorrt/*.so /usr/local/lib/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    然后sudo make install

    MNN_build_rdy

    如果一切顺利,您的Jetson Nano上有以下文件夹。

    MNN_include

    lib MNN Jetson

    none

    也请注意包含示例的文件夹。

    none

    如果您想下载一些示例深度学习模型,可以使用下面的命令。

    # download some models
    $ cd ~/MNN
    $ ./tools/script/get_model.sh
    
    • 1
    • 2
    • 3

    4.基准测试

    有了新的CUDA后端,看看MNN的性能有多好是很有趣的。以下是一些基准。平均而言,当MNN使用CUDA时,您将获得40%的性能提升。注意,在测试期间,Jetson Nano CPU被超频到2014.5 MHz, GPU被超频到998.4 MHz。
    在这里插入图片描述

    参考目录

    https://qengineering.eu/install-mnn-on-jetson-nano.html

  • 相关阅读:
    python常见模块的使用
    最小生成树:Prim和Kruskal算法原理及实现
    【华为OD题库C卷-001】山脉的个数
    Redis配置哨兵及其机制
    网页显示不全(运行时网页pc端显示完全,手机端显示不全)
    微信小程序的养发护发馆客户管理系统
    和鲸 ModelWhale 与华为 OceanStor 2910 计算型存储完成兼容性测试
    弘辽科技:淘宝店铺被管控是什么原因?要注意什么?
    数据中心网络方案设计
    【LeetCode高频SQL50题-基础版】打卡第6天:第31~35题
  • 原文地址:https://blog.csdn.net/weixin_43229348/article/details/127662869