F3实例Vitis 2020.1开发流程

本文介绍如何在F3实例上使用Vitis 2020.1制作镜像文件,并烧录到FPGA芯片中。

前提条件

  • 已创建满足如下要求的F3实例。

    • 提交工单获取镜像FaaS_F30010_VITIS_2020_1,并在创建实例时,选择该镜像。

    • 建议系统盘不小于120 GiB。

    • 已为F3实例分配公网IP。

    • 已在F3实例所在安全组中添加规则并放行SSH(22)端口。具体操作,请参见添加安全组规则

  • 已在ECS控制台F3实例的详情页上,获取实例ID。

  • 已创建一个OSS Bucket专门用于FaaS服务。

    Bucket与F3实例必须属于同一个账号、同一个地域。若尚未创建,具体操作,请参见创建一个OSS Bucket

  • 使用RAM用户操作FPGA,必须先完成以下操作:

    • 创建RAM用户并授权,详情请参见创建RAM用户为RAM用户授权

      您需要为RAM用户授予的权限为:AliyunECSReadOnlyAccess、AliyunOSSFullAccess和AliyunRAMFullAccess。

    • 授权FaaS服务角色,授权页面请参见授权FaaS服务角色

    • 获取AccessKey ID和AccessKey Secret。

步骤一:远程连接实例

FaaS_F30010_VITIS_2020_1镜像已配置了桌面环境及VNC Server,建议您通过VNC Server远程连接F3实例。具体操作,请参见使用VNC登录实例

步骤二:初始化软件环境

您每创建一个F3实例,均需要执行以下操作初始化当前软件环境。

  1. 运行以下命令,通过VNC Server指定环境分辨率。

    vncserver -geometry 2560x1440

    回显信息如下:

    vnc

  2. 运行以下命令,对FaaS_F30010_VITIS_2020_1镜像中已预安装的FaaS平台使用VITIS所需的软件环境进行初始化。

    source /root/faasTools/vitis_setup.sh 

    回显信息如下,表示初始化完成。

    vnc2

步骤三:创建工程

环境准备完成后,您即可通过VITIS启动工程,并在GUI界面下创建工程。

  1. 执行vitis命令启动工程。

    回显信息如下,表示工程启动成功。

    vitis

  2. 在VITIS的GUI界面创建工程。

    1. 在打开的VITIS窗口,单击PROJECT下的Create Application Project2022-04-26_10-58-32.png

    2. 在打开的New Application Project对话框中,在左侧区域选择SW acceleration templates > Vector Addition,然后单击Finish2022-04-26_10-58-58.png

步骤四:仿真

VITIS支持Emulation-SW、Emulation-HW两种仿真形式。

  1. 在VITIS的Assistant页签中,选择vadd_system > vadd > Emulation-SW [Software Emulation]

  2. Emulation-SW [Software Emulation]上单击鼠标右键,选择Build

    2022-04-26_15-27-38.png

  3. Emulation-SW [Software Emulation]上单击鼠标右键,选择Run > Default进行机型仿真。

    运行结果如下所示:2022-04-26_15-30-19.png

步骤五:制作镜像

由于VITIS默认生成的镜像文件中包含.bit格式的文件,而FaaS要求上传的文件格式为.dcp,因此您需要先进行相关设置,再制作FPGA镜像。

  1. 在VITIS的Assistant页签的右上角,单击2022-04-26_15-38-12.png图标。

  2. 在打开的Project Settings对话框中,选择vadd_system > vadd

  3. 在右侧的vadd区域中,将V++ linker options配置项设置为以下内容。然后单击Apply,再单击Apply and Close

    --advanced.param compiler.acceleratorBinaryContent=dcp
  4. 单击VITIS的Assistant页签,选择vadd_system > vadd > Hardware [Hardware]

  5. Hardware [Hardware]上右键单击鼠标,单击Build进行镜像制作。

    制作过程会持续数个小时,制作完成后,您可以进入工程目录的Hardware目录下,然后执行ls命令,查看生成的host可执行二进制文件vadd及镜像文件binary_container_1.xclbin。如下所示:

    [root@iz2zec7rvsxxxxxxx Hardware]# ls
    a.xclbin                                  guidance.html
    binary_container_1.build                  guidance.pb
    binary_container_1-krnl_vadd-compile.cfg  makefile
    binary_container_1-link.cfg               package.build
    binary_container_1.ltx                    package.cfg
    binary_container_1.mdb                    src
    binary_container_1.xclbin                 vadd
    binary_container_1.xclbin.info            vadd_Hardware.build.ui.log
    binary_container_1.xclbin.link_summary    v++_package.log
    binary_container_1.xclbin.sh              v++.package_summary
    common-config.cfg                         xcd.log
  6. 执行如下命令,生成用于上传镜像的压缩文件。

    [root@iz2zec7rvsxxxxxxx Hardware]# vitis_xclbin_split.sh binary_container_1.xclbin

    执行结果如下:

    XRT Build Version: 2.6.0 (2020.1)
           Build Date: 2021-03-08 10:50:41
              Hash ID: 80107ebc7376dafc8e1c9f5043c81c6f1dcc9dbb
    ------------------------------------------------------------------------------
    Warning: The option '--output' has not been specified. All operations will
             be done in memory with the exception of the '--dump-section' command.
    ------------------------------------------------------------------------------
    Reading xclbin file into memory.  File: binary_container_1.xclbin
    
    Section: 'BITSTREAM'(0) was successfully written.
    Format: RAW
    File  : 'faas20210311-092706.dcp'
    Leaving xclbinutil.
    XRT Build Version: 2.6.0 (2020.1)
           Build Date: 2021-03-08 10:50:41
              Hash ID: 80107ebc7376dafc8e1c9f5043c81c6f1dcc9dbb
    ------------------------------------------------------------------------------
    Warning: The option '--output' has not been specified. All operations will
             be done in memory with the exception of the '--dump-section' command.
    ------------------------------------------------------------------------------
    Reading xclbin file into memory.  File: binary_container_1.xclbin
    
    Section: 'EMBEDDED_METADATA'(2) was successfully written.
    Format: RAW
    File  : 'faas20210311-092706.xml'
    Leaving xclbinutil.
    to_aliyun/
    to_aliyun/faas20210311-092706.xml
    to_aliyun/faas20210311-092706.dcp
    Generate Image :Image20210311-092706.tar.gz

    如上所示,最终生成的Image20210311-092706.tar.gz文件可用于上传制作镜像。具体操作,请参见使用faasutil

    说明

    FaaS_F30010_VITIS_2020_1镜像中已预装了faasutil工具,您可以执行source /root/faasTools/vitis_setup.sh命令后使用。

步骤六:上板验证

通过FaaS_F30010_VITIS_2020_1镜像中预装的faasutil工具完成镜像制作及镜像加载后,您可以使用GUI或命令行两种方式进行上板验证。

  • GUI方式验证

    1. 在VITIS的Assistant页签,选择vadd_system > vadd > Hardware [Hardware]

    2. Hardware [Hardware]上单击鼠标右键,选择Run > Default

      运行结果如下所示,表示将FPGA镜像已烧录到FPGA芯片。

      2022-04-26_16-15-48.png

  • 命令行方式验证

    在工程目录的Hardware目录下,执行如下命令进行验证:

    [root@iz2zec7rvsxxxxxxx Hardware]# ./vadd binary_container_1.xclbin

    运行结果如下所示,表示将FPGA镜像已烧录到FPGA芯片。

    Loading: 'binary_container_1.xclbin'
    TEST PASSED