2.星空加速卡X3教程--基本环境配置(linux)
-
1、前期准备
本教程及其对应案例主要用于测试和评估基于CAISA架构的鲲云星空X3加速卡和与之对应的工具链RainBuilder,该教程及对应工程包含用户级别的样例代码,用户在评测的同时,可以用样例代码作为参考进行二次开发。
1.1、软件准备
当前项目已经在ubuntu系统上进行过测试,包括:
- Ubuntu 16.04
- Ubuntu 18.04
鲲云应用案例工程包含三部分内容:
-
X30032009:X3版本的加速卡对应的案例文件(0032009在这里指代版本号,后面会随迭代更新而变动)。
X30032009 ├─ pcie-driver.tar //驱动 ├─ device-manager.tar //设备管理 ├─ rainbuilder-pkg.tar //包含Rbruntime推理工具 ├─ uc-cr-example.tar //c++代码示例 └─ uc-pyruntime.tar //python代码示例
-
corerain-datasets:标准数据集。
corerain-datasets ├─ 01-imagenet.tar ├─ 02-coco.tar ├─ 03-fddb.tar ├─ 04-cityscape.tar ├─ 05-coco2017.tar └─ 06-dagm2007class1.tar
-
corerain-models:量化前、后的模型。
corerain-models ├─ caisa-models //量化后的模型 └─ reference-models //量化前的模型
-
corerain-public-tools:项目相关工具,可根据情况下载.
corerain-public-tools ├─ cr-docker-cpu-xxxxxx.tar ├─ cr-docker-gpu-xxxxxx.tar ├─ docker_installer_19_03_5.tar └─ ...
1.2、硬件准备
您可以通过我们的邮箱申请借测我们的鲲云星空加速卡X3,邮箱如下:
1.2.1 加速卡安装步骤
-
步骤 1 :戴好防静电手套。
-
步骤 2: 断开服务器电源,并拔下电源插头,将服务器机箱接地。
-
步骤 3: 依照服务器或主机相关使用说明将机箱打开,将 X3加速卡插入服务器的 PCIe X8 或者 X16 插槽中。
-
步骤 4 :盖好机箱盖。
-
步骤 5: 插好电源插头,给服务器上电,待进入电脑系统后进行相关软件的运行。
2、环境搭建
2.1、驱动安装
主要用到X30032009这个文件夹中的
pcie-driver.tar
和device-manager.tar
。2.1.1、加载PCIE驱动
首先解压驱动文件:
cd <path-to-your-project>/X30032009 tar -xvf pcie-driver.tar
对驱动软件进行编译和加载:
(注意:加载PCIE前,需要确保BIOS中的安全启动(Security Boot)处于关闭状态。)
cd pcie-driver ./compile ./load
加载成功后会有如下打印
[ 114.550163] Corerain DMA 0000:01:00.0: irq 131 for MSI/MSI-X [ 114.550165] Corerain DMA 0000:01:00.0: irq 132 for MSI/MSI-X [ 114.550171] Corerain DMA 0000:01:00.0: using a 64-bit irq mask [ 114.550171] Corerain DMA 0000:01:00.0: allocated 4 msi/msi-x vectors [ 114.550179] Corerain DMA 0000:01:00.0: requested irq: 129 [ 114.550184] Corerain DMA 0000:01:00.0: requested irq: 130 [ 114.550188] Corerain DMA 0000:01:00.0: requested irq: 131 [ 114.550192] Corerain DMA 0000:01:00.0: requested irq: 132 [ 114.550205] Corerain DMA 0000:01:00.0: BAR[0] start@0x00000000d0000000 mapped to 0xffffc90002000000, length 4194304 [ 114.550209] Corerain DMA 0000:01:00.0: BAR[4] start@0x00000000d0400000 mapped to 0xffffc90001a00000, length 1048576 [ 114.550320] Corerain DMA 0000:01:00.0: X3/X6/X9 device init successfully. [ 114.550333] X3/X6/X9 device driver install finish.
注意:第一次运行时请执行编译脚本compile,后续使用只需执行加载脚本load;为了保证宿主机环境与加速卡环境的隔离,该驱动不会在系统启动后自动加载,用户可根据需要自行设置。电脑一次开机后请不要重复加载PCIE驱动。如加载失败或异常,请将电脑重启。
2.1.2、 加载Device Manager
DeviceManager能够支持多网络切换运行,并支持板卡状态管理。在发行版文件夹中找到Device Manager工程(device-manager.tar)并解压
cd <path-to-your-project>/X30032009/ tar -xvf device-manager.tar
进入解压后的工程进行编译和加载
cd device-manager ./compile ./load
加载成功后会有如下打印
---------------------------0------------------------- class path name: /sys/class/corerain dev_search_prefix: /sys/class/corerain/ dev_file_prefix: /dev/corerain_dma dev_buf_file_prefix: /dev/corerain_dma_buf dev_filename_prefix: corerain_dma dev type: easic ----------------------------------------------------- version: 0x72902668 X3/X6/X9 device ddr init successfully. read 0x00020000 + 0x00000134 with value 0x00001000 should be 0x00005000 PASS write 4096 bytes, speed: 0.068312G/s, time: 0.055842ms read 4096 bytes, speed: 0.200489G/s, time: 0.019027ms | size | write speed(GB/s) | read speed(GB/s)| | :----: | :----: | :----:| | 4KB | 0.068312 | 0.200489 | # | STATE | hw_id | license 0 | idle | 0x00000000000000 | valid device memory table size: 64
同时DeivceManager还提供了板卡状态管理工具
rdbm
,用户能够进行板卡状态查询,并能通过重置板卡来解决因某些外部错误导致板卡运行出错的问题。使用方法如下。其中,中的did参数指的是加速卡的id,默认did为0是指第一块加速卡。rbdm.exe --help Usage: ----------------------------------------------------------- rbdm -l | 获取所有的设备及其状态。 rbdm -m did state | 改变加速卡的状态。 rbdm -c did | 检查加速卡的lincese。 rbdm -r did | 重置加速卡。当加速卡出现异常时,可优先重置加速卡,若无法解决问题再重启电脑。 rbdm -u did | dump all the user of did rbdm -k did uid | remove uid from did
2.2、项目软件安装
X30032009项目中的uc-cr-example.tar是运行在特定的docker环境中的项目,所以需要我们预先准备好docker这个工具,之后在docker环境中实现项目案例。
2.2.1、docker环境准备
请确保宿主机已安装docker-ce,安装方法见如下连接:
-
CentOS:https://docs.docker.com/install/linux/docker-ce/centos/
-
Ubuntu:https://docs.docker.com/install/linux/docker-ce/ubuntu/
注:如宿主机中安装有Nvidia GPU且已安装驱动,我司除提供默认的CPU开发部署环境外,也提供了GPU版本。如需使用GPU版本请安装docker-ce对应版本的nvidia-docker,详细信息请参考:https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)。
2.2.2、加载docker镜像
-
获取docker镜像文件cr-docker-cpu-current.tar
-
加载镜像文件
sudo docker load < cr-docker-cpu-7a1777.tar
加载成功后有如下输出:
Loaded image: corerain/cr_docker_env:cpu
此外,用户也可以通过dockerhub获取镜像:
sudo docker pull corerain/cr_docker_env:cpu
加载成功的输出如下:
cpu: Pulling from corerain/cr_docker_env ... Status: Downloaded newer image for corerain/cr_docker_env:cpu
-
建立软件运行所需要的容器
sudo docker run --name <pick a name> \ -v <path-to-your-project>/corerain-datasets:/home/corerain/workspace/corerain-datasets \ -v <path-to-your-project>/corerain-models:/home/corerain/workspace/corerain-models \ -v <path-to-your-project>/X30032009:/home/corerain/workspace/X30032009 \ --user corerain:$(id -g) \ --privileged=true \ --ipc host \ -p 5000:5000 \ -it corerain/cr_docker_env:cpu \ /bin/bash
此时,该终端已进入到docker容器中,进入~/workspace可看到建立容器时挂载的宿主机路径。
corerain@fbf8e81a9346:~$ cd workspace/ corerain@fbf8e81a9346:~/workspace$ ls X30012345 corerain-datasets corerain-models
Docker容器中的默认用户为corerain,密码为admin。
2.2.3、安装RainBuilder
在docker容器中进入对应路径解压rainbuilder-pkg.tar,当前的例子是
~/workspace/X30012345
cd ~/workspace/X30032009 tar -xvf rainbuilder-pkg.tar
进入安装包进行安装
cd rainbuilder-pkg ./install_cpu source ~/.bashrc
注意:rainbuilder中的RbCompiler默认安装TensorFlow的解析模块。在rainbuilder-pkg安装包内的compiler_addons内,有caffe、ONNX以及PyTorch的解析模块安装包,如有需要请使用pip进行安装,其中PyTorch的解析模块需要首先在环境中安装PyTorch 1.4.0和torchvision 0.5.0,具体安装方法参考https://pytorch.org/get-started/locally/
如需卸载RainbBuilder,可使用如下指令。
cd rainbuilder-pkg ./uninstall source ~/.bashrc
Docker的其他具体操作可参考官方使用指南https://docs.docker.com/
2.2.4、解压应用案例工程和数据
开始评测前需要在docker容器中将对应的工程和数据进行解压。在docker容器中进入对应路径解压
uc-cr-example.tar
和uc-pyruntime.tar
,当前的例子是~/workspace/X30032009
。-
解压工程案例。
cd ~/workspace/X30012345 tar -xvf uc-cr-example.tar tar -xvf uc-pyruntime.tar
-
解压数据。
cd ~/workspace/corerain-datasets tar -xvf *.tar
完成以上操作后,X3加速卡及其开发、运行和评测的环境就已经部署完成了。
其他更加详细的使用可以参考鲲云星空加速卡X3用户手册.pdf。