全部產品
Search
文件中心

FPGA as a Service:F3執行個體Vitis 2020.1開發流程

更新時間:Jul 06, 2024

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