Jetson Nano에 MNN 딥 러닝 프레임워크 설치

1. 소개

이 페이지에서는 Jetson Nano에 Alibaba의 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

MNN 소프트웨어를 컴파일하기 전에 해야 할 일이 하나 있습니다. MNN Vulkan 인터페이스는 OpenGL ES 3.0 라이브러리를 사용합니다. Android용 저수준 그래픽 렌더링 인터페이스입니다. 다행스럽게도 Jetson Nano의 JetPack 4.4 라이브러리 2.0 버전과 역호환됩니다. 또한 우리가 아는 한 MNN 프레임워크는 고유한 3.0 버전 호출을 사용하지 않습니다. symlink를 사용하여 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

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 ..

CMake MNN 젯슨

라이브러리를 빌드하고 적절한 폴더에 설치할 시간입니다.

# 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/

그런 다음 sudo make install .

MNN_build_rdy

모든 것이 순조롭게 진행되면 Jetson Nano에 다음 폴더가 있는 것입니다.

MNN_include

lib MNN 젯슨

없음

또한 예제가 포함된 폴더에 유의하십시오.

없음

몇 가지 예제 딥 러닝 모델을 다운로드하려면 아래 명령을 사용할 수 있습니다.

# download some models
$ cd ~/MNN
$ ./tools/script/get_model.sh

4. 벤치마킹

새로운 CUDA 백엔드를 사용하면 MNN이 얼마나 잘 수행되는지 보는 것이 흥미로울 것입니다. 다음은 몇 가지 벤치마크입니다. 평균적으로 MNN이 CUDA를 사용하면 성능이 40% 향상됩니다. 테스트 중에 Jetson Nano CPU는 2014.5MHz로 오버클럭되었고 GPU는 998.4MHz로 오버클럭되었습니다.
여기에 이미지 설명 삽입

참조 목록

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

Supongo que te gusta

Origin blog.csdn.net/weixin_43229348/article/details/127662869
Recomendado
Clasificación