3. 安装

本章内容介绍了两种环境搭建方式。一种方式使用Docker镜像(一种虚拟环境),由于其中已经内置了部分工具包,因此简化了部分操作步骤。如果您想要使用Docker镜像,请参见 使用 Docker 镜像; 另一种方式则需要您自己安装所有算法工具包和编译工具包。如果您不打算使用Docker镜像,请参见 在 GPU 机器上安装

3.1. 技术准备

从解压后的软件包的相对路径中获取安装、配置和其他过程中所需的安装包:

Note

以下压缩包建议在 Linux 环境进行解压。

软件

软件包相对路径

HBDK包

./Related-tools/hbdk-3.6.4-py3-none-linux_x86_64.whl

./Related-tools/hbdk_model_verifier-3.6.4-py3-none-linux_x86_64.whl

TensorFlow Horizon 算法包

./Related-tools/tf_toolkit-v0.8.2.tgz

交叉编译工具

./Embedded-System-SDK/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz

回灌工具

./Related-tools/pc-sender.zip

客户端

./Related-tools/client.tar.gz

./Related-tools/linux_client.tar

嵌入式应用SDK

./Embedded_contrib_sdk/embedded_contrib_sdk-v3.3.0.3.tar.gz

./Embedded_release_sdk/embedded_release_sdk-v3.3.0.3.tar.gz

Cmake

./Embedded-System-SDK/cmake-3.7.2-Linux-x86_64.tar

X2-Dev 镜像

./Related-tools/disk_x2dev_2666_Debug.img

J2-Dev 镜像

./Related-tools/disk_j2dev_2666_Debug.img

96board 镜像

./Related-tools/disk_96board_2666_Debug.img

mono 镜像

./Related-tools/Horizon_Matrix_2-Mono_V6.0.2_RC.6.zip

刷机工具

./Related-tools/hbupdate_win64_v0.6.1.zip

Tensorflow 镜像

./Docker/tensorflow-horizon-docker-v3.3.0.tar.gz

串口驱动

./Embedded-System-SDK/CP2103_Serial_Drivers.zip

关于 96board 和 mono 开发板的使用,参见相关用户手册。

3.1.1. 使用交叉编译工具

  1. 运行命令解压文件。

    tar -xvf gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz.
    
  2. 配置路径。

    将解压后的 gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin 添加至环境变量 PATH

3.2. 在 GPU 机器上安装

安装文件下载,参见 技术准备

3.2.1. 算法包依赖

软件

版本

Ubuntu

16.04 或之后版本

Python

3.6(不支持3.7或更高版本)

CUDA

10

glibc.i686

libstdc++.i686

glibc-devel.i686

libstdc++-devel.i686

aarch64-linux-gnu

gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz

cudnn

7.6.2或之后版本

3.2.2. 安装包信息

属性

说明

子工具包

horizon_plugin_tensorflow, hbdk

版本

大小

55 MB

3.2.3. 目录结构

horizon_plugin_tensorflow 目录结构如下:

.
|-- docs
|-- packages
|-- pretrain-models
`-- scripts

其中,

  • docs

    与 horizon_plugin_tensorflow 相关的文档,

  • packages

    依赖 pip 包,

  • pretrain-models

    Pretrained backbone 模型,

  • scripts

    horizon_plugin_tensorflow 使用示例。

3.2.4. 安装说明

3.2.4.1. 安装 CUDA 工具包

  1. 下载 CUDA 工具包,点击 下载 CUDA

  2. 按照此处说明,安装 CUDA 工具包:CUDA 工具包说明

  3. CUDA 工具包安装完毕后,检查 CUDA 库所用环境变量设置如下:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
    

3.2.4.2. 安装 Horizon Tensorflow Plugin 和编译工具

运行以下命令使用 pip3 安装:

./packages/install.sh

Note

  • 安装过程中如果提示安装权限不足,请使用--user参数。

  • 如果使用本工具包之前配置过 horizon_plugin_tensorflow 或 hbdk 相关的环境变量,请梳理后做相应的修改或者清除,避免环境混乱。

3.3. 使用 Docker 镜像

为方便使用地平线天工开物开发工具链,我们提供了docker文件,以简化使用过程中的环境搭建步骤。离线 docker 镜像可以在收到的软件包 tensorflow-horizon-docker-v3.3.0.tar.gz 中获取。

3.3.1. Docker 信息

对象

信息

Tensorflow镜像

tensorflow-horizon-docker-v3.3.0.tar.gz

Ubuntu

16.04 或之后版本

内置工具包

算法包,编译工具

版本

应用开发工具将与 X2/J2 开发板一同交付。

3.3.2. 配置 Docker 环境

3.3.2.1. 安装说明

软件

版本

安装指南

平台支持

Docker

>=1.12(建议18.03.0-ce)

Docker Docs

NVIDIA Docker

2.0.3

https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)

https://github.com/nvidia/nvidia-docker/wiki/Frequently-Asked-Questions#platform-support

3.3.2.2. 用户配置

个人用户(非 root)使用 docker 时,需要被添加到 docker 用户组。

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker  # Centos7
# relogin

3.3.3. 如何使用 Docker

  1. 导入 docker 镜像所在 .tar.gz 文件:

    gunzip -c tensorflow-horizon-docker-v3.3.0.tar.gz | docker load
    

    如果需要使用 hbm 文件或其他文件,请使用 -v 挂载宿主机的目录。

  2. 下载数据到指定文件夹。目前有下面两种导入方法:

    • 本机与 docker 共享数据(推荐使用),执行如下命令:

      nvidia-docker run -it --rm -p 80:80 -v $HOST-DATA-DIR:$DOCKER-DATA-DIR hub.hobot.cc/aitools/tensorflow-horizon-docker-v3.3.0.tar.gz /bin/bash
      

      请将 $HOST-DATA-DIR 和 $DOCKER-DATA-DIR 各自替换为实际使用路径。

      其中,

      • $HOST-DATA-DIR 表示本机的 data 目录绝对路径;

      • $DOCKER-DATA-DIR 表示 docker 内的 data 目录的绝对路径。

    • 使用 SCP 命令从其他机器或者本机拷贝到 docker 中。由于根分区大小有限,这种方法可能会导致 docker 内空间不足,请谨慎使用。

  3. 运行 nvidia-smi 查看可用显卡数量。

  4. 指定显卡数量,运行 Horizon Plugin Tensorflow 用户指南 中的具体使用脚本。

3.3.4. Tensorflow Docker 环境软件安装说明

3.3.4.1. 基础镜像

发布的 Docker 基于 tensorflow 的官方镜像进行加工产出。

Docker tag: tensorflow/tensorflow:1.14.0-gpu-py3

3.3.4.2. 交付物增加

  • tensorflow 算法包

  • 软件安装脚本 (install_package.sh)

  • cmake 软件包

  • 嵌入式应用交付包

  • 交叉编译工具

3.3.4.3. Docker镜像中已安装软件

  • apt-utils

  • vim

  • libsm6

  • libxext6

  • libxrender-dev

  • openssl-devel

  • openssh-client

  • tree

  • dpkg 32 位运行库

  • libc6:i386

  • libstdc++6:i386

  • g++-multilib

  • paramiko

  • matplotlib==3.0.3

  • Sphinx==2.1.0

  • sphinx-gallery

  • hbdk

  • horizon_plugin_tensorflow

3.3.4.4. 环境变更

  • 修改 CC 及 CXX 的全局环境变量 使编译使用交叉编译工具,

  • 将 cmake 增加到全局环境变量 PATH 中。

3.3.4.5. Docker File

FROM tensorflow/tensorflow:1.14.0-gpu-py3
MAINTAINER ruxin.song@horizon.ai
ENV DEBIAN_FRONTEND noninteractive
# install package
COPY ./tf_toolkit-v0.8.2.tgz /root/
COPY ./install_package.sh /root/

COPY ./cmake-3.7.2-Linux-x86_64.tar /root/
COPY ./Embedded_contrib_sdk/embedded_contrib_sdk-v3.3.0.3.tar.gz /root/
COPY ./Embedded_release_sdk/embedded_release_sdk-v3.3.0.3.tar.gz /root/
COPY ./gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz /root/
RUN /root/install_package.sh

3.3.4.6. Install_package.sh

cd /root

apt-get update
apt-get install -y apt-utils
apt-get install -y vim

apt-get install -y libsm6
apt-get install -y libxext6
apt-get install -y libxrender-dev
apt-get install -y openssl-devel
apt-get install -y openssh-client
apt-get install -y tree

dpkg --add-architecture i386
apt update
apt-get -y install libc6:i386 libstdc++6:i386
apt-get -y install g++-multilib

pip3 install paramiko -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

pip3 install --default-timeout=1200 -U matplotlib==3.0.3 -i http://pypi.hobot.cc/hobot-local/simple --extra-index-url=http://mirrors.aliyun.com/pypi/simple/ --trusted-host pypi.hobot.cc --trusted-host mirrors.aliyun.com
pip3 install --default-timeout=1200 -U Sphinx==2.1.0 -i http://pypi.hobot.cc/hobot-local/simple --extra-index-url=http://mirrors.aliyun.com/pypi/simple/ --trusted-host pypi.hobot.cc --trusted-host mirrors.aliyun.com
pip3 install --default-timeout=1200 -U sphinx-gallery -i http://pypi.hobot.cc/hobot-local/simple --extra-index-url=http://mirrors.aliyun.com/pypi/simple/ --trusted-host pypi.hobot.cc --trusted-host mirrors.aliyun.com

tar xvf tf_toolkit-v0.8.2.tgz && rm tf_toolkit-v0.8.2.tgz

mkdir /root/env/
mkdir /root/example/

tar xvf cmake-3.7.2-Linux-x86_64.tar -C /root/env/ && rm cmake-3.7.2-Linux-x86_64.tar
tar xvf gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz -C /root/env/ && rm gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz
tar xzvf embedded_contrib_sdk-v3.3.0.3.tar.gz -C /root/example/ && rm embedded_contrib_sdk-v3.3.0.3.tar.gz
tar xzvf embedded_release_sdk-v3.3.0.3.tar.gz -C /root/example/ && rm embedded_release_sdk-v3.3.0.3.tar.gz
echo "export PATH=/root/env/cmake-3.7.2-Linux-x86_64/bin:$PATH" >> ~/.bashrc

pushd .
cd horizon_plugin_tensorflow
ls
./packages/install.sh
popd

3.4. 客户端系统配置要求

操作系统

Windows 7 32bit/64bit 及以上支持

Ubuntu 14.04/16.04 支持

内存

4G

文件系统

NTFS

显卡驱动

OpenGL 4.5 及以上

可用硬盘空间

500MB (视频pack不计算)