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