本文介绍如何在F3实例上使用Vitis 2020.1制作镜像文件,并烧录到FPGA芯片中。
前提条件
已创建满足如下要求的F3实例。
已在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实例,均需要执行以下操作初始化当前软件环境。
运行以下命令,通过VNC Server指定环境分辨率。
vncserver -geometry 2560x1440
回显信息如下:
运行以下命令,对FaaS_F30010_VITIS_2020_1镜像中已预安装的FaaS平台使用VITIS所需的软件环境进行初始化。
source /root/faasTools/vitis_setup.sh
回显信息如下,表示初始化完成。
步骤三:创建工程
环境准备完成后,您即可通过VITIS启动工程,并在GUI界面下创建工程。
执行
vitis
命令启动工程。回显信息如下,表示工程启动成功。
在VITIS的GUI界面创建工程。
在打开的VITIS窗口,单击PROJECT下的Create Application Project。
在打开的New Application Project对话框中,在左侧区域选择
,然后单击Finish。
步骤四:仿真
VITIS支持Emulation-SW、Emulation-HW两种仿真形式。
在VITIS的Assistant页签中,选择 。
在Emulation-SW [Software Emulation]上单击鼠标右键,选择Build。
在Emulation-SW [Software Emulation]上单击鼠标右键,选择 进行机型仿真。
运行结果如下所示:
步骤五:制作镜像
由于VITIS默认生成的镜像文件中包含.bit
格式的文件,而FaaS要求上传的文件格式为.dcp
,因此您需要先进行相关设置,再制作FPGA镜像。
在VITIS的Assistant页签的右上角,单击图标。
在打开的Project Settings对话框中,选择 。
在右侧的vadd区域中,将V++ linker options配置项设置为以下内容。然后单击Apply,再单击Apply and Close。
--advanced.param compiler.acceleratorBinaryContent=dcp
单击VITIS的Assistant页签,选择 。
在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
执行如下命令,生成用于上传镜像的压缩文件。
[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方式验证:
在VITIS的Assistant页签,选择
。在Hardware [Hardware]上单击鼠标右键,选择
。运行结果如下所示,表示将FPGA镜像已烧录到FPGA芯片。
命令行方式验证:
在工程目录的
Hardware
目录下,执行如下命令进行验证:[root@iz2zec7rvsxxxxxxx Hardware]# ./vadd binary_container_1.xclbin
运行结果如下所示,表示将FPGA镜像已烧录到FPGA芯片。
Loading: 'binary_container_1.xclbin' TEST PASSED