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. 使用交叉编译工具¶
运行命令解压文件。
tar -xvf gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu.tar.xz.
配置路径。
将解压后的 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 工具包¶
下载 CUDA 工具包,点击 下载 CUDA。
按照此处说明,安装 CUDA 工具包:CUDA 工具包说明。
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) |
||
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¶
导入 docker 镜像所在 .tar.gz 文件:
gunzip -c tensorflow-horizon-docker-v3.3.0.tar.gz | docker load
如果需要使用 hbm 文件或其他文件,请使用 -v 挂载宿主机的目录。
下载数据到指定文件夹。目前有下面两种导入方法:
本机与 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 内空间不足,请谨慎使用。
运行 nvidia-smi 查看可用显卡数量。
指定显卡数量,运行 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不计算)