Intel FPGA 可編程加速卡 D5005
關於本文檔
本文檔介紹了直接記憶體存取 (DMA) 加速器功能單元 (AFU) 的實現以及如何建構在硬體或模擬中運行的設計。
目標受眾
目標受眾包括需要加速器功能 (AF) 在連接到英特爾 FPGA 裝置的記憶體中本地緩衝資料的硬體或軟體開發人員。
慣例
文件約定
習俗 | 描述 |
# | 位於指令之前,指示要以 root 身分輸入該指令。 |
$ | 表示要以使用者身分輸入命令。 |
這種字體 | File名稱、指令和關鍵字均以此字體列印。長命令行以這種字體列印。儘管長命令行可能會換行到下一行,但返回不是命令的一部分;不要按 Enter 鍵。 |
指示出現在尖括號之間的佔位符文字必須替換為適當的值。不要輸入尖括號。 |
縮寫
縮寫
縮寫 | 擴張 | 描述 |
AF | 加速器功能 | 在 FPGA 邏輯中實現的編譯硬體加速器映像可加速應用程式。 |
阿福 | 加速器功能單元 | 在 FPGA 邏輯中實現的硬體加速器可將應用程式的運算操作從 CPU 中卸載,以提高效能。 |
應用程式介面 | 應用程式介面 | 一組用於建立軟體應用程式的子程式定義、協定和工具。 |
CCI-P | 核心緩存介面 | CCI-P 是 AFU 用於與主機通訊的標準介面。 |
東風 | 設備功能標頭 | 建立功能標題的連結清單以提供新增功能的可擴展方式。 |
持續… |
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
縮寫 | 擴張 | 描述 |
FIM | FPGA介面管理器 | FPGA 硬體包含 FPGA 介面單元 (FIU) 以及用於記憶體、網路等的外部介面。
加速器功能 (AF) 在運作時與 FIM 互動。 |
金融情報機構 | FPGA介面單元 | FIU 是一個平台介面層,可作為 PCIe*、UPI 等平台介面和 CCI-P 等 AFU 側介面之間的橋樑。 |
強積金 | 記憶體屬性工廠 | MPF 是一個基本構建塊 (BBB),AFU 可使用它為與 FIU 的交易提供 CCI-P 流量整形操作。 |
加速術語
帶有 FPGA 的英特爾® 至強® CPU 加速堆疊術語表
學期 | 縮寫 | 描述 |
適用於採用 FPGA 的英特爾至強® CPU 的英特爾® 加速堆疊 | 加速堆棧 | 軟體、韌體和工具的集合,可在英特爾 FPGA 和英特爾至強處理器之間提供效能最佳化的連接。 |
英特爾 FPGA 可程式加速卡 | 英特爾 FPGA PAC | PCIe FPGA 加速卡。
包含 FPGA 介面管理器 (FIM),可透過 PCIe 匯流排與 Intel Xeon 處理器配對。 |
- DMA 加速器功能單元用戶指南:英特爾 FPGA 可編程加速卡 D5005
DMA AFU 描述
介紹
直接記憶體存取 (DMA) AFU examp該文件展示瞭如何管理主機處理器和 FPGA 之間的記憶體傳輸。您可以將 DMA AFU 整合到您的設計中,以在主機記憶體和 FPGA 本機記憶體之間移動資料。
- 記憶體屬性工廠 (MPF) 基本構建塊 (BBB)
- Avalon® 記憶體映射 (Avalon-MM) 適配器的核心快取介面 (CCI-P)
- 包含 DMA BBB 的 DMA 測試系統
下面的 DMA AFU 硬體組件主題更詳細地描述了這些子模組。
相關資訊
- 第 6 頁的 DMA AFU 硬體元件
- Avalon 接口規範
有關 Avalon-MM 協議的更多信息,包括讀寫事務的時序圖。
DMA AFU 軟體包
適用於採用 FPGA 封裝的英特爾至強 CPU 的英特爾加速堆疊 file (*.tar.gz),包括 DMA AFU examp樂。 這個前任ample 提供使用者空間驅動程式。主機應用程式使用此驅動程序,以便 DMA 在主機和 FPGA 記憶體之間移動資料。硬體二進位檔案、原始碼和使用者空間驅動程式位於以下目錄:$OPAE_PLATFORM_ROOT/hw/samp萊斯/dma_afu 。在嘗試 DMA AFU 之前,您必須安裝開放式可程式加速引擎 (OPAE) 軟體套件。有關安裝說明,請參閱《英特爾 FPGA 可編程加速卡 D5005 的英特爾加速堆疊快速入門指南》中的安裝 OPAE 軟體包。本快速入門指南還包括有關開放式可程式加速引擎 (OPAE) 和配置 AFU 的基本資訊。安裝開放可編程加速引擎(OPAE)軟體包後,如下amp檔案主機應用程式和 DMA AFU 使用者空間驅動程式位於下列目錄中:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw.運行amp英特爾 FPGA PAC D5005 硬體上的主機應用程式 fpga_dma_test,請參閱執行 DMA AFU Ex 部分中的步驟amp勒。英特爾公司。版權所有。英特爾、英特爾標誌和其他英特爾標誌是英特爾公司或其子公司的商標。英特爾根據英特爾的標準保固保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。除非英特爾明確書面同意,英特爾不承擔因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務。建議英特爾客戶在依賴任何已發佈的資訊以及訂購產品或服務之前先取得最新版本的設備規格。 *其他名稱和品牌可能被聲稱為其他人的財產。
相關資訊
- 英特爾 FPGA 可程式加速卡 D5005 的英特爾加速堆疊快速入門指南
- 安裝 OPAE 軟件包
DMA AFU 硬體組件
DMA AFU 與 FPGA 介面單元 (FIU) 和 FPGA 記憶體連接。有關 FPGA 記憶體的詳細規格,請參閱 Intel FPGA 可程式加速卡 D5005 的 FPGA Interface Manager 資料表。目前可用的硬體決定了此記憶體配置。未來的硬體可能支援不同的記憶體配置。您可以使用 DMA AFU 在下列來源位置和目標位置之間複製資料:
- 主機到設備 FPGA 記憶體
- 裝置 FPGA 記憶體到主機
平台設計器系統,$OPAE_PLATFORM_ROOT/hw/samp萊斯/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys 實作了大部分 DMA
- 阿福。 Platform Designer系統中實作的部分DMA AFU可以在下面找到
位置:$OPAE_PLATFORM_ROOT/hw/samp萊斯/dma_afu/hw/rtl/TEST_dma/您可以在以下位置找到 DMA BBB:
- $OPAE_PLATFORM_ROOT/硬件/秒amp萊斯/dma_afu/hw/rtl/dma_bbb
DMA 加速器功能單元用戶指南:英特爾 FPGA 可編程加速卡 D5005
DMA AFU 硬體框圖
DMA AFU 包含以下內部模組,用於與 FPGA 介面單元 (FIU) 連接:
- 記憶體映射 IO (MMIO) 解碼器邏輯:偵測 MMIO 讀取和寫入事務,並將它們與它們到達的 CCI-P RX 通道 0 分開。這可確保 MMIO 流量永遠不會到達 MPF BBB,並由獨立的 MMIO 指令通道提供服務。
- 記憶體屬性工廠 (MPF):此模組確保來自 DMA 的讀取回應按照發出的順序傳回。 Avalon-MM 協定要求讀取回應以正確的順序傳回。
- CCI-P 到 Avalon-MM 轉接器:此模組在 CCI-P 和 Avalon-MM 事務之間進行轉換,如下所示:
- CCI-P 到 Avalon-MMIO 適配器:該路徑將 CCI-P MMIO 事務轉換為 Avalon-MM 事務。
- Avalon 至 CCI-P 主機適配器:這些路徑為 DMA 存取主機記憶體建立單獨的唯讀和唯寫路徑。
- DMA 測試系統:此模組可作為 DMA BBB 的包裝器,將 DMA 主裝置暴露給 AFU 中的其餘邏輯。它提供 DMA BBB 和 CCI-P 至 Avalon 適配器之間的介面。它還提供 DMA BBB 和本地 FPGA SDRAM 群組之間的介面。
相關資訊
英特爾 FPGA 可程式加速卡 D5005 的 FPGA 介面管理器資料表
DMA測試系統
DMA 測試系統將 DMA BBB 連接到 FPGA 設計的其餘部分,包括 CCI-P 適配器和本地 FPGA 記憶體。
DMA 測試系統框圖
此框圖顯示了 DMA 測試系統的內部結構。 DMA 測試系統在第 1 頁的圖 7 中顯示為單片塊。
DMA測試系統包括以下內部模組:
- 遠距離橋/管道橋:具有可調節延遲的管道橋,用於控制拓撲並提高設計 Fmax。
- DMA AFU 裝置功能標頭 (DFH):這是 DMA AFU 的 DFH。此 DFH 指向位於偏移 0x100 處的下一個 DFH (DMA BBB DFH)。
- 空 DFH:此組件終止 DFH 鍊錶。如果在設計中新增更多 DMA BBB,請確保空 DFH 基底位址位於 DFH 鍊錶的末端。
- MA 基本建置模組 (BBB):此模組在主機和本地 FPGA 記憶體之間移動資料。它還存取主機記憶體以存取描述符鏈。
DMABBB
DMA BBB 子系統使用 Avalon-MM 交易將資料從來源位址傳輸到目標位址。 DMA 驅動程式透過存取系統內部各個組件的控制和狀態暫存器來控制 DMA BBB。 DMA 驅動程式還透過使用共享記憶體來傳送傳輸描述符來控制 DMA BBB。 DMA BBB 存取 FPGA 記憶體中偏移量 0x0 處的資料。 DMA BBB 存取主機記憶體中偏移量 0x1_0000_0000_0000 處的資料和描述符。
DMA BBB 平台設計器框圖
該框圖不包括一些內部 Pipeline Bridge IP 核。
DMA 加速器功能單元用戶指南:英特爾 FPGA 可編程加速卡 D5005
DMA AFU 描述
DMA BBB Platform Designer 中的元件實現以下功能:
- 遠距離橋/管道橋: 包含具有可調節延遲的流水線橋,用於控制拓撲並提高設計 Fmax。
- MA BBB DFH: 這是 DMA BBB 的裝置功能標頭。此 DFH 指向位於偏移量 0x100(空 DFH)處的下一個 DFH。
- 描述符前端: 負責取得描述符並將其傳輸到調度程序。當 DMA 傳輸完成時,前端從調度程序接收狀態資訊並覆蓋主機記憶體中的描述符。
- 調度員: 此區塊調度 DMA 傳輸請求到讀寫主機。
- 讀大師: 此模組負責從主機或本機 FPGA 記憶體讀取資料並將其作為流資料傳送至 Write Master。
- 寫大師: 此模組負責從 Read Master 接收串流資料並將內容寫入主機或本機 FPGA 記憶體。
暫存器對映和位址空間
DMA AFU 支援兩個內存 views:DMA view 和主人 view。 DMA view 支援49位元位址空間。 DMA 的下半部分 view 對應到本地 FPGA 記憶體。 DMA 的上半部分 view 映射到主機記憶體。主人 view 包括可透過 MMIO 存取存取的所有暫存器(例如 DFH 表)以及 DMA AFU 內部使用的各種 IP 核的控制/狀態暫存器。 DMA BBB 和 AFU 中的 MMIO 暫存器支援 32 位元和 64 位元存取。 DMA AFU 不支援 512 位元 MMIO 存取。對 DMA BBB 內的調度程序暫存器的存取必須是 32 位元(描述符前端實作 64 位元暫存器)。
DMA AFU 暫存器映射
DMA AFU 暫存器對應提供單元內所有位置的絕對位址。這些暫存器位於主機中 view 因為只有主機才能存取它們。
DMA AFU 記憶體映射
位元組位址偏移 | 姓名 | 跨度(以位元組為單位) | 描述 |
0x0 | DMA AFU DFH | 0x40 | DMA AFU 的裝置功能標頭。 ID_L 設定為 0x9081f88b8f655caa,ID_H 設定為 0x331db30c988541ea。 DMA AFU DFH 已參數化為指向偏移 0x100 以查找下一個 DFH (DMA BBB DFH)。您不得修改 DMA AFU DFH 的基底位址,因為它必須位於 CCIP 規格定義的位址 0x0 處。 |
0x100 | DMABBB | 0x100 | 指定 DMA BBB 控制和狀態暫存器介面。您可以參考 DMA BBB 暫存器對映以取得更多資訊。在 DMA BBB 內偏移量 0 處,DMA BBB 包括它自己的 DFH。此 DFH 已設定為在偏移量 0x100 (NULL DFH) 處尋找下一個 DFH。如果添加更多 DMA BBB,請將它們間隔 0x100,並確保 NULL DFH 緊跟著最後一個 DMA 0x100。 |
0x200 | 空DFH | 0x40 | 終止 DFH 鍊錶。 ID_L 設定為 0x90fe6aab12a0132f,ID_H 設定為 0xda1182b1b3444e23。 NULL DFH 已被參數化為硬體中的最後一個 DFH。因此,NULL DFH 位於位址 0x200。如果在系統中新增額外的 DMA BBB,則需要相應增加 NULL DFH 基底位址,使其保持在最高位址。 DMA 驅動程式和測試應用程式不會使用該硬體。 |
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
暫存器對映和位址空間
DMA BBB 記憶體映射
以下位元組位址是 DMA AFU 系統中 DMA BBB 基底位址 (0x100) 的相對偏移量。
位元組位址偏移 | 姓名 | 跨度(以位元組為單位) | 描述 |
0x0 | DMA BBB DFH | 0x40 | DMA AFU 的裝置功能標頭。 ID_L 設定為 0xa9149a35bace01ea , ID_H 設定為 0xef82def7f6ec40fc 。 DMA BBB DFH 已參數化為指向下一個 DFH 偏移量的 0x100。下一個偏移可以是另一個 DMA BBB、另一個 DFH(不包括在本設計中)或 NULL DFH。 |
0x40 | 調度員 | 0x40 | 調度程序的控制埠。 DMA 驅動程式使用此位置來控制 DMA 或查詢其狀態。 |
0x80 | 描述符前端 | 0x40 | 描述符前端是一個自訂元件,它從主機記憶體讀取描述符並在 DMA 傳輸完成時覆蓋描述符。驅動程式指示前端第一個描述符位於主機記憶體中的位置,然後前端硬體主要透過儲存在主機記憶體中的描述符與驅動程式進行通訊。 |
DMA AFU 位址空間
主機可以存取第 4 頁表 12 和第 5 頁表 13 中所列的暫存器。此位址空間的下半部包括本地 FPGA 記憶體。此位址空間的上半部包括 49 位元主機位址記憶體。下圖為主機和DMA view的記憶。
DMA AFU 和主機 View記憶
設備功能頭鍊錶
DMA AFU 設計擴展amp文件包含三個設備功能頭(DFH),它們形成一個連結列表。這個鍊錶允許amp檔案應用程式識別 DMA AFU 以及驅動程式識別 DMA BBB。 DFH 清單末尾包含 NULL DFH。在連結清單末尾包含空 DFH 可讓您在設計中新增更多 DMA BBB。您只需將 NULL DFH 移至其他 BBB 之後的地址即可。每個 DMA BBB 期望下一個 DFH 位於 BBB 基底位址 0x100 位元組的位置。下圖描述了 DMA AFU 設計 ex 的鍊錶amp勒。
暫存器對映和位址空間
DMA AFU 裝置功能標頭 (DFH) 鏈接
軟體程式設計模型
DMA AFU 包含一個可在您自己的主機應用程式中使用的軟體驅動程式。 fpga_dma.cpp 和 fpga_dma.h file位於下列位置的軟體驅動程式:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw 此驅動程式支援以下功能:
應用程式介面 | 描述 |
fpgaCountDMA 通道 | 掃描設備功能鏈以查找 DMA BBB 並計算所有可用通道的數量。 |
fpgaDMA開放 | 開啟 DMA 通道的句柄。 |
fpgaDMA關閉 | 關閉 DMA 通道的句柄。 |
fpgaDMA傳輸初始化 | 初始化代表 DMA 傳輸的物件。 |
fpgaDMA傳輸復位 | 將 DMA 傳輸屬性物件重設為預設值。 |
fpgaDMA傳輸銷毀 | 銷毀 DMA 傳輸屬性物件。 |
fpgaDMA傳輸集源 | 設定傳輸的來源位址。該位址必須是 64 位元組對齊的。 |
fpgaDMA傳輸集目標 | 設定傳輸的目標位址。該位址必須是 64 位元組對齊的。 |
fpgaDMA傳輸設定長度 | 設定傳輸長度(以位元組為單位)。對於非資料包傳輸,必須將傳輸長度設定為 64 位元組的倍數。對於資料包傳輸,這不是必需的。 |
fpgaDMATransferSet傳輸類型 | 設定傳輸類型。合法值為:
• HOST_MM_TO_FPGA_MM = TX(主機到AFU) • FPGA_MM_TO_HOST_MM = RX(AFU 到主機) |
fpgaDMATransferSetTransferCallback | 註冊異步傳輸完成通知的回呼。如果指定回調,fpgaDMATransfer 會立即傳回(非同步傳輸)。
如果不指定回調,fpgaDMATransfer 將在傳輸完成後返回(同步/阻塞傳輸)。 |
fpgaDMA傳輸集最後 | 指示最後一次傳輸,以便 DMA 可以開始處理預先取用的傳輸。在 DMA 開始處理傳輸之前,預設值為管道中的 64 個傳輸。 |
fpgaDMA傳輸 | 執行 DMA 傳輸。 |
有關 API、輸入和輸出參數的更多信息,請參閱標題 file 位於 $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.h英特爾公司。版權所有。英特爾、英特爾標誌和其他英特爾標誌是英特爾公司或其子公司的商標。英特爾根據英特爾的標準保固保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。除非英特爾明確書面同意,英特爾不承擔因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務。建議英特爾客戶在依賴任何已發佈的資訊以及訂購產品或服務之前先取得最新版本的設備規格。其他名稱和品牌可能被聲稱為其他人的財產。
軟體程式設計模型
要了解有關軟體驅動程式使用模型的更多信息,請參閱 README file 位於 $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
運行 DMA AFU Example
開始之前:
- 你應該對前任很熟悉amp有關英特爾 FPGA 可程式加速卡 D5005 的英特爾加速堆疊快速入門指南中的檔案。
- 您必須定義一個環境變數。環境變數取決於您使用的英特爾加速堆疊版本:
- 對於目前版本,將環境變數設定為 $OPAE_PLATFORM_ROOT
- 您必須安裝 Intel 執行緒建置模組 (TBB) 函式庫,因為 DMA 驅動程式依賴它。
- 您還必須設定兩個 1 GB 的大頁面來運行amp樂應用程式。 $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
執行以下步驟下載 DMA 加速器功能 (AF) 位元流、建置應用程式和驅動程式以及運行設計擴展amp樂:
- 變更為 DMA 應用程式和驅動程式目錄: cd $OPAE_PLATFORM_ROOT/hw/samp萊斯/dma_afu/sw
- 建立驅動程式和應用程式:make
- 下載 DMA AFU 位元流: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- 執行主機應用程序,以 100 MB 為單位將 1 MB 從主機記憶體寫入 FPGA 裝置記憶體並讀回: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
相關資訊
英特爾公司英特爾 FPGA 可程式加速卡 D5005 的英特爾加速堆疊快速入門指南。版權所有。英特爾、英特爾標誌和其他英特爾標誌是英特爾公司或其子公司的商標。英特爾根據英特爾的標準保固保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。除非英特爾明確書面同意,英特爾不承擔因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務。建議英特爾客戶在依賴任何已發佈的資訊以及訂購產品或服務之前先取得最新版本的設備規格。 *其他名稱和品牌可能被聲稱為其他人的財產。
編譯 DMA AFU Example
若要產生綜合建置環境來編譯 AF,請使用 afu_synth_setup 指令,如下所示:
- 改為 DMA AFUamp文件目錄:$OPAE_PLATFORM_ROOT/hw/samp萊斯/dma_afu
- 產生設計建置目錄:afu_synth_setup –source hw/rtl/file列表.txt build_synth
- 在 afu_synth_setup 產生的綜合建置目錄中,從終端視窗輸入下列指令,為目標硬體平台產生 AF: cd build_synth run.sh run.sh AF 產生腳本建立具有相同基礎的 AF 映像 file名稱為 AFU 的平台配置 file (.json) 帶有 .gbs 後綴,位置:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs 英特爾公司。版權所有。英特爾、英特爾標誌和其他英特爾標誌是英特爾公司或其子公司的商標。英特爾根據英特爾的標準保固保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。除非英特爾明確書面同意,英特爾不承擔因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務。建議英特爾客戶在依賴任何已發佈的資訊以及訂購產品或服務之前先取得最新版本的設備規格。 *其他名稱和品牌可能被聲稱為其他人的財產。
模擬 AFU Example
英特爾建議您參考英特爾加速器功能單元 (AFU) 模擬環境 (ASE) 快速入門指南,以了解您的英特爾 FPGA PAC,以熟悉模擬類似的擴展amp文件並設定您的環境。在繼續執行以下步驟之前,請先驗證 OPAE_PLATFORM_ROOT 環境變數是否設定為 OPAE SDK 安裝目錄。請完成以下步驟來設定 DMA AFU 的硬體模擬器:
- 改為 DMA AFUamp文件目錄:cd $OPAE_PLATFORM_ROOT/hw/samp萊斯/dma_afu
- 在新目錄中建立 ASE 環境並對其進行配置以模擬 AFU:afu_sim_setup –source hw/rtl/file列表.txt build_ase_dir
- 改為 ASE 建置目錄:cd build_ase_dir
- 建立驅動程式和應用程式:make
- 進行模擬:make sim
Samp硬體模擬器的輸出:
[SIM] ** 注意:運行軟體應用程式之前 ** [SIM] 在應用程式將運行的終端中設定 env(ASE_WORKDIR)(複製貼上)=> [SIM] $SHELL |運行:[SIM] ———+—————————————————— [SIM] bash/zsh |導出 ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] 對於任何其他 $SHELL,請諮詢您的 Linux 管理員 [SIM] [SIM] 準備好模擬... [SIM] 按 CTRL-C 關閉模擬器...完成以下步驟,在模擬環境中編譯並執行 DMA AFU 軟體:
- 打開一個新的終端機視窗。
- 將目錄變更為: cd $OPAE_PLATFORM_ROOT/hw/samp萊斯/dma_afu/sw
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
模擬 AFU Example
- 將硬體模擬中上述步驟中的環境設定字串(選擇適合您的 shell 的字串)複製到終端視窗。請參閱 s 中的以下行amp硬體模擬器的輸出。 [SIM卡] bash/zsh |導出 ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/工作
- 編譯軟體: $ make USE_ASE=1
- 執行主機應用程序,以環回模式將主機記憶體中的 4 KB(以 1 KB 為單位)寫回 FPGA 裝置記憶體: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
相關資訊
英特爾加速器功能單元 (AFU) 仿真環境 (ASE) 快速入門用戶指南
最佳化以提高 DMA 效能
fpga_dma_test.cpp 中 NUMA(非均勻記憶體存取)最佳化的實作允許處理器存取其自己的本機記憶體比存取非本機記憶體(另一個處理器的本機記憶體)更快。典型的 NUMA 配置如下圖所示。本機存取表示從核對同一核本地的記憶體的存取。遠端存取說明了當節點 0 上的核心存取駐留在節點 1 本機記憶體中的記憶體時所採取的路徑。
典型的 NUMA 配置
使用以下程式碼在您的測試應用程式中實作 NUMA 最佳化:
// 如有需要,設定適當的親和力 if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties 道具;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & 匯流排);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetBus”); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (Provunction(props, (Sapint8_); GetFunction”); // 從拓樸中尋找裝置 hwloc_topology_t 拓樸; hwloc_topology_init(&拓樸); hwloc_topology_set_flags(拓撲,HWLOC_TOPOLOGY_FLAG_IO_DEVICES);英特爾公司。版權所有。英特爾、英特爾標誌和其他英特爾標誌是英特爾公司或其子公司的商標。英特爾根據英特爾的標準保固保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。除非英特爾明確書面同意,英特爾不承擔因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務。建議英特爾客戶在依賴任何已發佈的資訊以及訂購產品或服務之前先取得最新版本的設備規格。 *其他名稱和品牌可能被聲稱為其他人的財產。
最佳化以提高 DMA 效能
hwloc_topology_load(拓樸); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(拓樸、dom、匯流排、dev、func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(拓樸, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf(“CPUSET 是 %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET 為 %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(拓撲結構, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } if (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }
DMA 加速器功能單元使用者指南檔案
英特爾加速堆棧版本 | 使用者指南(PDF) |
2.0 | DMA 加速器功能單元 (AFU) 用戶指南 |
DMA 加速器功能單元使用者指南的文件修訂歷史
檔案版本 |
英特爾加速 堆棧版本 |
變化 |
2020.08.03 |
2.0.1(支持英特爾
Quartus® Prime 專業版 版本 19.2) |
修正了 AF 影像 file 部分中的名稱 編譯 DMA AFU Example. |
2020.04.17 |
2.0.1(支持英特爾
Quartus Prime 專業版 19.2 版) |
更正了一個聲明 目標受眾 部分。 |
2020.02.20 |
2.0.1(支持英特爾
Quartus Prime 專業版 19.2 版) |
修正了拼字錯誤。 |
2019.11.04 |
2.0.1(支持英特爾 Quartus Prime 專業版 19.2 版) |
• 在使用預先建置 AFU 配置 FPGA 部分時,將 fpgaconf 替換為 fpgasupdate 運行 DMA AFU Example.
• 新增了字幕 Intel FPGA 可編程加速卡 D5005 到文檔標題。 • 新增了環境變數$OPAE_PLATFORM_ROOT。 • 修改部分 軟體程式設計模型 用於較小的編輯。 • 新增了新部分 編譯 DMA AFU Example. • 修改部分 最佳化以提高 DMA 效能 用於較小的編輯。 |
2019.08.05 |
2.0(支持英特爾
Quartus Prime 專業版 18.1.2) |
初次發布。 |
英特爾公司。版權所有。英特爾、英特爾標誌和其他英特爾標誌是英特爾公司或其子公司的商標。英特爾根據英特爾的標準保固保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。除非英特爾明確書面同意,英特爾不承擔因應用或使用本文所述的任何資訊、產品或服務而產生的任何責任或義務。建議英特爾客戶在依賴任何已發佈的資訊以及訂購產品或服務之前先取得最新版本的設備規格。
- 其他名稱和品牌可能被聲稱為其他人的財產。
文件/資源
![]() |
Intel FPGA 可編程加速卡 D5005 [pdf] 使用者指南 FPGA可程式加速卡,D5005,FPGA可程式加速卡D5005,DMA加速器功能單元 |