Vitis学习记录(一)
核心概念
Vitis統一軟件平臺為使用標準編程語言開發和交付FPGA加速應用程序提供了一個框架。Vitis提供了標準軟件開發環境的所有功能,包括:
編譯器或交叉編譯器的主機應用程序運行在x86或Arm?處理器
用于構建FPGA二進制文件的交叉編譯器
調試環境來幫助識別和解決代碼中的問題
性能分析器來識別瓶頸并幫助您優化應用程序
理解Vitis編程和執行模型
一個Vitis加速應用程序由兩個不同的組件組成:一個軟件程序和一個包含硬件加速內核的FPGA二進制文件。
1.軟件程序可以通過多種方式與硬件內核交互。最簡單的方法可以分解為以下步驟:
2.主程序將內核所需的數據寫入FPGA設備的全局內存中。
3.主程序設置內核的輸入參數。
4.主程序觸發內核的執行。內核執行所需的計算,根據需要訪問全局內存來讀寫數據。內核還可以使用流連接與其他內核通信。
5.內核通知主機它已經完成了它的任務。
6.主程序可以將數據從全局內存轉移到主機內存,也可以將數據的所有權交給另一個內核。
理解Vitis的構建過程
主程序是使用用于數據中心應用程序的GNU c++編譯器(g++)或用于Xilinx MPSoC設備的GNU c++ Arm交叉編譯器構建的。
使用Vitis編譯器構建FPGA二進制文件。首先,內核被編譯成Xilinx對象(.xo)文件。然后,將.xo文件鏈接到硬件平臺以生成FPGA二進制(.xclbin)文件。Vitis編譯器和鏈接器接受廣泛的選項來裁剪和優化結果。
理解Vitis的構建目標
Vitis編譯器提供了三個不同的構建目標:用于調試和驗證目的的兩個仿真目標,以及用于生成實際FPGA二進制文件的默認硬件目標:
軟件模擬——內核代碼被編譯以在主機處理器上運行。這允許通過快速構建和運行循環來優化迭代算法。這個目標對于識別語法錯誤、執行與應用程序一起運行的內核代碼的源代碼級調試以及驗證系統的行為非常有用。
硬件模擬——內核代碼被編譯成一個硬件模型(RTL),它在一個專用的模擬器中運行。這個構建-運行循環耗時較長,但提供了詳細的、周期準確的內核活動視圖。這個目標對于測試將進入FPGA的邏輯的功能和獲得初始性能評估非常有用。
硬件——內核代碼被編譯成一個硬件模型(RTL),然后在FPGA上實現,產生一個二進制文件,可以在實際的FPGA上運行。
總結
以上是生活随笔為你收集整理的Vitis学习记录(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派+神经计算棒2实时人脸检测
- 下一篇: Vitis学习记录(三)