阿里雲團隊努力不懈,讓最新技術內容能以更快方式以您最熟悉的語言呈現給您。本文內容由機器自動翻譯簡體中文,過程無人工干預。轉碼所造成任何內容錯誤及相關損失,阿里雲概不負責。敬請見諒。若任何內容問題涉及信息準確性,請以英文版為準。
全部產品
Search
文件中心

使用f1 RTL

更新時間: Aug 23, 2018

本文描述如何使用f1 RTL(Register Transfer Level)。

說明

  • 本文所述所有操作都必須由同一個帳號在同一地域裡執行。
  • 強烈建議您使用RAM使用者操作FaaS執行個體。為了防止意外操作,您需要讓RAM使用者僅執行必要的操作。在操作FPGA鏡像及下載時,因為您需要從指定的OSS Bucket下載原始DCP工程,所以您必須為FaaS管理帳號建立一個角色,並授予臨時許可權,讓FaaS管理帳號訪問指定的OSS Bucket。如果需要對IP加密,必須授予RAM使用者KMS相關許可權。如果需要做許可權檢查,必須授予查看使用者資源的許可權。

前提條件

操作步驟

按以下步驟使用f1 RTL。

第 1 步. 遠端連線f1執行個體

遠端連線Linux執行個體

第 2 步. 配置基礎環境

運行以下指令碼或直譯式程式配置基礎環境。

  1. source /opt/dcp1_0/script/f1_env_set.sh

第 3 步. 編譯工程

運行以下命令:

  1. cd /opt/dcp1_0/hw/samples/dma_afu
  2. run.sh

說明:編譯時間間較長,請耐心等待。

第 4 步. 製作鏡像

按以下步驟製作鏡像:

  1. 運行命令初始化 faascmd

    1. #如果需要,添加環境變量及運行許可權
    2. export PATH=$PATH:/opt/dcp1_0/script/
    3. chmod +x /opt/dcp1_0/script/faascmd
    4. # 將hereIsYourSecretId替換為您的AccessKey ID,hereIsYourSecretKey替換為您的AccessKey Secret
    5. faascmd config --id=hereIsYourSecretId --key=hereIsYourSecretKey
    6. # 將hereIsYourBucket換為華東1地域裡OSS Bucket名稱
    7. faascmd auth --bucket=hereIsYourBucket
  2. 確認在/opt/dcp1_0/hw/samples/dma_afu目錄下,運行以下命令上傳gbs檔案。

    1. faascmd upload_object --object=dma_afu.gbs --file=dma_afu.gbs
  3. 運行以下命令製作鏡像。

    1. # 將hereIsYourImageName替換為您的鏡像名稱
    2. faascmd create_image --object=dma_afu.gbs --fpgatype=intel --name=hereIsYourImageName --tags=hereIsYourImageTag --encrypted=false --shell=V0.11

第 5 步. 下載鏡像

按以下步驟下載鏡像到f1執行個體:

  1. 查看鏡像是否製作成功:運行命令 faascmd list_images
    返回結果裡,如果出現"State":"success",表示鏡像製作成功。請記錄返回結果裡顯示的FpgaImageUUID,稍後會用到。

    查看鏡像是否製作成功

  2. 運行命令獲取FPGA ID。

    1. # 將hereIsYourInstanceId替換為您的f1執行個體ID
    2. faascmd list_instances --instanceId=hereIsYourInstanceId

    以下為返回結果。請記錄FpgaUUID。

    獲取FpgaUUID

  3. 運行命令下載FPGA鏡像到f1執行個體。

    1. # 將hereIsYourInstanceID替換為剛剛保存的執行個體ID;將hereIsFpgaUUID替換為上一條命令中記下的FpgaUUID;將hereIsImageUUID替換為上一步記下的FpgaImageUUID
    2. faascmd download_image --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID --fpgatype=intel --imageuuid=hereIsImageUUID --imagetype=afu --shell=V0.11
  4. 運行命令檢查是否下載成功。

    1. # 將hereIsYourInstanceID替換為剛剛保存的執行個體ID;將hereIsFpgaUUID替換為上一條命令中記下的FpgaUUID;
    2. faascmd fpga_status --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID

    如果返回結果裡出現"TaskStatus":"operating"時,且FpgaImageUUID和下載鏡像時的FpgaImageUUID一致,說明下載成功。

    查看是否下載成功

第 6 步. 測試

依次運行以下命令。

  1. cd /opt/dcp1_0/hw/samples/dma_afu/sw
  2. make
  3. sudo LD_LIBRARY_PATH=/opt/dcp1_0/hw/samples/dma_afu/sw:$LD_LIBRARY_PATH ./fpga_dma_test 0

如果您看到如圖所示的輸出結果,說明測試完成。

測試輸出結果

說明:如果沒有開啟Huge pages,運行以下命令啟用Huge pages。

  1. sudo bash -c "echo 20 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages"