本文介紹如何在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