日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

F3實例OpenCL開發流程

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

本文介紹如何在F3實例上使用OpenCL(Open Computing Language)制作鏡像文件,并燒錄到FPGA芯片中。

前提條件

  • 已創建F3實例。

  • 已在F3實例所在的安全組中添加安全組規則,并放行SSH(22)端口。具體操作,請參見添加安全組規則

  • 已登錄ECS管理控制臺,并在F3實例的詳情頁上獲取實例ID。

  • 已創建一個OSS Bucket專門用于FaaS服務。若尚未創建OSS Bucket,具體操作,請參見創建一個OSS Bucket

  • 已獲取命令行工具faasutil。若尚未獲取faasutil工具,具體操作,請參見獲取faasutil

  • 使用RAM用戶操作FPGA時,必須先完成以下操作:

    • 創建RAM用戶并為RAM用戶授權。具體操作,請參見創建RAM用戶為RAM用戶授權

      您需要為RAM用戶授予AliyunOSSFullAccess權限。

    • 獲取AccessKey ID和AccessKey Secret。具體操作,請參見創建AccessKey

      警告

      僅支持通過RAM用戶的AccessKey使用FaaS服務,可有效降低AccessKey泄露的風險。強烈建議您不要將AccessKey ID和AccessKey Secret明文保存至工程代碼里或者任何容易被他人明文獲取到的地方,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。

注意事項

  • 本文中所有操作都必須由同一個賬號在同一地域里執行。

  • 如果您為普通用戶,建議管理員將鏡像中/root/xbinst_oem目錄拷貝至用戶根目錄下。

  • 如果您為普通用戶,請聯系管理員給普通用戶添加/dev/virtio-ports/FaaS.agent的使用權限。

  • 建議您使用RAM用戶操作FaaS實例。您需要為FaaS管理賬號創建一個角色,并授予臨時權限,讓FaaS管理賬號能訪問指定的OSS Bucket。

  • 本文以2018.2版本的SDAccel開發環境為例,若您使用其他版本的SDAccel開發環境,步驟和命令可能會稍有差異。

步驟一:配置環境

配置環境時,請注意以下事項:

  • 配置環境主要包括安裝xocl驅動、設置vivado環境變量、檢查vivado license、檢測aliyun-f3 sdaccel平臺、授予2018.2 runtime配置。

  • 如果您要運行vivado的仿真,請勿運行步驟2~步驟4的命令來配置環境,您只需要單獨設置vivado環境變量即可。

  • 推薦您使用Makefile方式仿真。

  1. 遠程登錄F3實例。

    具體操作,請參見遠程連接F3實例

    重要

    后面步驟中的編譯工程可能會持續數小時,建議您使用screen或者nohup等方式登錄,防止ssh超時退出。

  2. 運行以下命令,安裝screen。

    yum install screen -y
  3. 運行以下命令,進入screen。

    screen -S f3opencl
  4. 運行以下命令,配置環境。

    # 每打開一個終端窗口就需要執行該命令一次。
    sudo source /home/user1/xbinst_oem/F3_env_setup.sh xocl
  5. 下載并安裝補丁y2k22_patch-1.2.zip

    下載地址:Xilinx。其中,y2k22_patch-1.2.zip補丁用于修復Xilinx年限溢出缺陷。

步驟二:編譯二進制文件

編譯vadd二進制文件和kernel_global_bandwidth二進制文件的操作如下所示:

示例一:編譯vadd二進制文件

  1. 復制examples目錄。

    cp -rf /opt/Xilinx/SDx/2018.2/examples ./
  2. 進入vadd目錄。

    cd examples/vadd/
  3. 運行以下命令,查看XDEVICE的值。

    cat sdaccel.mk | grep "XDEVICE="

    您需要確保XDEVICE配置為XDEVICE=xilinx_aliyun-f3_dynamic_5_0

  4. 修改common.mk文件。

    1. 運行以下命令,打開common.mk文件。

      vim ../common/common.mk
    2. 添加編譯參數--xp param:compiler.acceleratorBinaryContent=dcp

      在文件代碼中的第61行代碼(參數可能在60~62行,視您的文件而定)末尾添加編譯參數--xp param:compiler.acceleratorBinaryContent=dcp,修改后的代碼如下所示。

      CLCC_OPT += $(CLCC_OPT_LEVEL) ${DEVICE_REPO_OPT} --platform ${XDEVICE} ${KERNEL_DEFS} ${KERNEL_INCS} --xp param:compiler.acceleratorBinaryContent=dcp
      說明

      由于您必須向編譯服務器提交DCP文件,所以需要添加--xp param:compiler.acceleratorBinaryContent=dcp編譯參數,使得Xilinx? OpenCL? Compiler(xocc)編譯生成一個布局布線后的DCP文件,而不是bit文件。

  5. 運行以下命令,編譯程序。

    make -f sdaccel.mk xbin_hw
    重要

    編譯過程可能會持續數個小時,請您耐心等待。

    顯示結果如下所示,表示二進制文件(vadd)編譯已經開始。f3_opencl_1

示例二:編譯kernel_global_bandwidth二進制文件

  1. 依次運行以下命令,克隆xilinx 2018.2 examples

    git clone https://github.com/Xilinx/SDAccel_Examples.git
    cd SDAccel_Examples/
    git checkout 2018.2
    說明

    git分支必須為2018.2版本。

  2. 運行以下命令進入上述目錄。

    cd getting_started/kernel_to_gmem/kernel_global_bandwidth
  3. 修改Makefile文件。

    1. 運行以下命令,打開Makefile文件。

      vim Makefile
    2. 設置DEVICES值,使得DEVICES=xilinx_aliyun-f3_dynamic_5_0

    3. 添加編譯參數--xp param:compiler.acceleratorBinaryContent=dcp

      在文件代碼的第33行代碼末尾添加--xp param:compiler.acceleratorBinaryContent=dcp,修改后的代碼如下所示。

      CLFLAGS +=--xp "param:compiler.acceleratorBinaryContent=dcp" --xp "param:compiler.preserveHlsOutput=1" --xp "param:compiler.generateExtraRunData=true" --max_memory_ports bandwidth -DNDDR_BANKS=$(ddr_banks)
  4. 運行以下命令,編譯程序。

    重要

    編譯過程可能會持續數小時,請您耐心等待。

    make TARGET=hw

    顯示頁面如下所示,表示二進制文件(kernel_global_bandwidth)編譯已經開始。f3_opencl_2

步驟三:檢查打包腳本

運行以下命令,檢查打包腳本是否存在。

file /home/user1/xbinst_oem/sdaccel_package.sh

如果返回結果中包含cannot open (No such file or directory),說明不存在該文件,您需要運行以下命令手動下載打包腳本。

wget http://fpga-tools.oss-cn-shanghai.aliyuncs.com/sdaccel_package.sh

步驟四:制作鏡像

  1. 初始化faasutil工具并配置OSS環境。

    1. 運行以下命令,設置RAM賬號的AccessKey信息。

      # 將<HereIsYourSecretId>和<HereIsYourSecretKey>替換為您的RAM用戶AK信息
      faasutil config --id=<HereIsYourSecretId> --key=<HereIsYourSecretKey>
    2. 運行以下命令,設置FaaS服務要使用的OSS Bucket。

      # 將<hereIsYourBucket>替換為您創建的OSS Bucket名稱
      faasutil auth --bucket=<hereIsYourBucket>
  2. 運行以下命令,獲取后綴為.xclbin的文件名。

    ls

    顯示結果如下:

    f3_opencl_3

  3. 運行以下命令,打包好二進制文件。

    /home/user1/xbinst_oem/sdaccel_package.sh -xclbin=/opt/Xilinx/SDx/2018.2/examples/vadd/bin_vadd_hw.xclbin

    打包完成后,您會在同一目錄下看到一個打包好的文件,如下圖所示。f3_opencl_4

步驟五:下載鏡像

本步驟介紹如何使用faasutil工具上傳網表文件并下載FPGA鏡像。關于faasutil命令的用法,請參見使用faasutil

  1. 依次運行以下命令,將壓縮包上傳和存放在OSS Bucket中。

    • 將壓縮包上傳到您個人的OSS Bucket

      faasutil put_object --object=bit.tar.gz --file=bit.tar.gz  #--object(Object file in oss bucket) --file(Local file need to put)

      顯示結果如下所示:

      f3_0opencl

    • 將存放在您個人OSS Bucket中的壓縮包上傳到FaaS管理單元的OSS Bucket中

      faasutil create_image --object=bit.tar.gz --fpgatype=xilinx --name=<HereIsFPGAImageName> --tags=<HereIsFPGAImageTag> --encrypted=false --shell=<hereIsShellVersionOfFPGA>        # <HereIsFPGAImageTag>可選(鏡像Tag)  encrypted可選,鏡像加密   <HereIsShellVersionOfFPGA>默認版本 

      顯示結果如下所示:

      f3_opencl-2

  2. 運行以下命令,查看FPGA鏡像是否處于可下載狀態。

    faasutil list_images

    在返回結果中:

    • 如果FPGA鏡像的"State""compiling",表示FPGA鏡像處于編譯狀態,您需要繼續等待。

      image-1

    • 如果FPGA鏡像的"State""success",表示FPGA鏡像已經可以下載,您需要找到并記錄FpgaImageUniqueId,用于后續下載鏡像(download_image)時使用。image2

  3. 運行以下命令,在命令返回結果中,找到并記錄fpga bdf

    faasutil list_instances

    image-5

  4. 運行以下命令,下載FPGA鏡像。

    faasutil download_image --bdf=<fpga_bdf> --fpgaImageUniqueId=<image_uuid>  #<fpga_bdf>由上一步所得  <image_uuid>鏡像uuid

    image-6

  5. 運行以下命令,查看鏡像是否下載成功。

    faasutil fpga_status --bdf=<fpga_bdf>

    以下為返回結果示例。如果顯示的imageuuid與您獲取的FpgaImageUniqueId一致,并且fpgaStatus參數顯示valid,說明鏡像下載成功。image-7

步驟六:運行Host程序

  1. 運行以下命令,配置環境。

     # 每打開一個終端窗口就需要執行該命令一次
    sudo source /home/user1/xbinst_oem/F3_env_setup.sh xocl
  2. 配置sdaccel.ini文件。

    在host二進制文件所在目錄下,運行以下命令,創建sdaccel.ini文件

    vim sdaccel.ini

    創建sdaccel.ini文件后,需要輸入下列內容。

    [Debug]
    profile=true
    [Runtime]
    runtime_log = "run.log"
    hal_log = hal.log
    ert=false
    kds=false
  3. 運行以下命令,運行host程序。

    • vadd運行命令如下:

      make -f sdaccel.mk host
      sudo ./vadd bin_vadd_hw.xclbin
    • kernel_global_bandwidth運行命令如下:

      sudo ./kernel_global

    如果返回結果中出現Test Passed,說明測試通過。

常用操作

這里介紹FPGA實例的部分常用操作。

任務

命令

查看幫助文檔

make -f ./sdaccel.mk help

軟件仿真

make -f ./sdaccel.mk run_cpu_em

硬件仿真

make -f ./sdaccel.mk run_hw_em

只編譯host代碼

make -f ./sdaccel.mk host

編譯生成可以下載的文件

make -f sdaccel.mk xbin_hw

清理工作目錄

make -f sdaccel.mk clean

強力清除工作目錄

make -f sdaccel.mk cleanall

說明
  • 仿真時只需要按照Xilinx標準流程操作,不需要配置F3_env_setup環境。

  • SDAccel runtime和SDAccel開發平臺已在阿里云F3官方鏡像中提供,您也可以直接下載SDAccel runtimeSDAccel開發平臺