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

前提条件

  • 已创建满足如下要求的f3实例。具体操作,请参见创建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。

操作步骤

在f3实例上,使用Vitis 2020.1制作镜像文件,并烧录到FPGA芯片中的操作步骤如下:
  1. 步骤一:远程连接实例
  2. 步骤二:初始化软件环境
  3. 步骤三:创建工程
  4. 步骤四:仿真
  5. 步骤五:制作镜像
  6. 步骤六:上板验证

步骤一:远程连接实例

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

步骤二:初始化软件环境

您每创建一个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