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.tardevice-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,安装方法见如下连接:

    注:如宿主机中安装有Nvidia GPU且已安装驱动,我司除提供默认的CPU开发部署环境外,也提供了GPU版本。如需使用GPU版本请安装docker-ce对应版本的nvidia-docker,详细信息请参考:https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)

    2.2.2、加载docker镜像

    1. 获取docker镜像文件cr-docker-cpu-current.tar

    2. 加载镜像文件

      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
      
    3. 建立软件运行所需要的容器

      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.taruc-pyruntime.tar,当前的例子是~/workspace/X30032009

    1. 解压工程案例。

      cd ~/workspace/X30012345
      tar -xvf uc-cr-example.tar
      tar -xvf uc-pyruntime.tar
      
    2. 解压数据。

      cd ~/workspace/corerain-datasets
      tar -xvf *.tar
      

    完成以上操作后,X3加速卡及其开发、运行和评测的环境就已经部署完成了。

    其他更加详细的使用可以参考鲲云星空加速卡X3用户手册.pdf


登录后回复