Facebook廣告投放需要多少費用?如何設定Facebook廣告預算?(乾貨教程)
文章目錄
Xilinx 賽靈思官方推出的 Vitis 統一軟體平臺可以大致的理解為在原本 SDK 軟體的基礎上將其做大做強,使其可以排程官方的其他相關軟體,從而成為一個針對賽靈思所有可加速裝置(如Alveo、ACAP、FPGA等)的統一整合開發環境。
1 - 從 Xilinx Zynq 講起
傳統的 FPGA ,僅含有可程式設計邏輯部分,即 PL(Progarmmable Logic)。賽靈思的 Zynq 系列則是在單片 FPGA 晶片上,將一個或者多個 ARM 核心嵌入其中,這一SOC部分被稱為 PS (Processing System)。
事實上,你是可以直接在 PL 上搭建一個 SOC 出來,比如使用 ARM 的 Cortex-m3 核心 IP、Micro Blaze。但是相比於直接將一個成熟的ARM核心電路固化嵌入其中,自己在 PL 上搭建近似效能的核心,還是過於佔用片上資源。
由於一塊晶片上存在兩個需要程式設計的部分,PL 需要用位元流(bitstream)來描述硬體架構,PS 需要執行裸機(standalone)或作業系統(如 Linux)。這便牽扯到對兩塊區域進行分別開發的問題。
熟悉賽靈思的 Spartan、Kintex、Virtex 等純 PL 器件的人都知道,可以在賽靈思的 Vivado 軟體中,使用 verilog 語言對 PL 部分進行程式設計、除錯與執行;玩過 Zynq 系列的人也知道,在 Vivado 中選擇使用Zynq 系列晶片後,可以新增 PS 的 IP 核。硬體匯出後,可以在賽靈思的 SDK 中編寫裸機或者能在作業系統上執行的程式。也可以
這裡我們可以總結一下,基本上,在賽靈思推出 Vitis 統一軟體平臺前,開發一套 PS + PL 的FPGA程式,基本使用的就是以下幾個軟體:
- Vivado
- SDK
- Petalinux
但是,隨著賽靈思的產品線逐漸壯大,相關的軟體也 迷之迭代 層出不窮,例如SDSoc。隨著賽靈思收購深鑑科技,將 Deep Learning Process Unit(DPU)以及相關套件納入囊中後。官方對於在 FPGA 上進行 AI 加速運算的推進也被劃入了快車道。於是,Vitis 統一軟體平臺也就此誕生。其中最引人矚目的便是官方宣傳的 Vitis AI 功能,大部分想要嚐鮮人工智慧在 FPGA 上便捷部署的人們,迫不及待的想要對當前的開發工具更換為最新的 Vitis。但是卻也有不少人被賽靈思官方對於 Vitis ,以及 Vitis AI 的描述繞的暈頭轉向。
那麼,什麼是 Vitis ?它的相關元件之間的關係又是什麼?本文便是筆者在被繞的暈頭轉向之際,嘗試著去對 Vitis 元件進行部分總結與概述的情況下所寫下的。奈於精力與個人理解的有限性,難免會有疏漏之處,還希望諸位看官能不吝賜教。
2 - Vitis 平臺概覽
這裡先將個人總結的 Vitis 平臺中各個元件之間的關係圖放出,方便檢視。
從官方的 Vitis 介紹中,以及實際安裝 Vitis Core 開發套件 後,我們可以瞭解到,Vitis 統一軟體平臺這個巨集大藍圖之中,主要包含了以下幾個元件:
- Vitis IDE
- Vitis HLS(也就是曾經的 Vivado HLS)
- Vitis Accelerated Library
- Vivado
- Vitis AI
- Petalinux
- XRT(Xilinx Runtime library)
關於安裝 Vitis 可以參考UP主 吃貓糧的耗子 的這篇視訊
2.1 - Vitis IDE
安裝 Vitis Core Development Kit 後,你便可以在桌面上找到 Vitis 這個軟體,它便是 Vitis 這個統一軟體平臺的一個排程口,開啟它實際則是打開了 Vitis IDE 這個軟體介面。
對於 Vitis ,一個重要的概念是 Platform,在這裡不僅僅是 Vivado 匯出後的硬體描述,而是一個更加廣義的概念,其是一個包含了硬體與軟體綜合概念,在這個 Platform 上,你可以進行許多綜合性的操作。(Platform 和 XSA的關係 - Community Forums)
硬體部分好說,我們使用 Vivado 即可匯出。使用安裝 Vitis 後的Vivado,在其中對硬體部分編譯完畢後,我們可以直接喚起 Vitis IDE(這一點有點類似於我們曾經在 Vivado 中喚起 SDK)。也可以從 Vitis IDE 中,新建工程 ,並選擇使用已新增的現有 Platform,或選擇從 Vivado 匯出的 xsa(Xilinx Shell Archive) 檔案以新建 Platform。
軟體部分,我們在 Vitis IDE 中也可以直接編寫裸機或者作業系統上執行的應用程式,並且編譯、除錯。這樣看來,Vitis IDE 本身,同以往的 SDK 其實很相似。
2.2 - Vitis HLS / Accelerated Library
Vitis HLS,和曾經的 Vivado HLS 並沒有什麼較大的差別。而 Vitis Accelerated Library 實質上更像是整合了以往賽靈思使用 HLS 進行優化過後的庫的集合(例如 在 HLS 中使用 opencv),我們依然可以在 HLS 中呼叫並使用這些已加速優化後的庫。
類似於曾經的 SDx ,也可以直接在 Vitis IDE 中呼叫 Vitis Accelerated Library 對程式碼進行加速,參考UG1393 或 Vitis 2020.1 Software Platform Release Notes 瞭解更多。
2.3 - Vitis AI
雖然叫 Vitis AI,但是目前來看和 Vitis IDE 的聯絡不大(至少目前沒有從 IDE 中直接使用 Vitis AI 的方法)。Vitis AI 目前是純命令列的形式,僅在 Linux 系統環境下執行,也就是說,為了使用這個功能,你必須安裝 Linux 版本的 Vitis,並且保證擁有足夠大的執行資源(RAM要求32GB以上)。
如概覽圖所示,Vitis AI 可以載入來自賽靈思精選後放入 Github 上的 Model Zoo 中的已固化模型,也可以載入來自使用者自定義的模型檔案。Vitis AI 工具包含幾個元件,AI 編譯器、量化器、優化器、分析器,並將最終的模型部署在 PL 端的 Deep Learning Processing Unit(DPU)上。PS端 或者對於 Alevo加速卡來說是電腦端,可以通過 Xilinx Runtime library(XRT)介面對其進行呼叫。
2.4 - Petalinux
petalinux 還是那個老味道,載入 vivado 匯出的硬體檔案,構建能在當前 PL 硬體環境上執行的 Linux系統,關於其介紹和使用可以檢視我的 Petalinux系列文章。是否能夠直接呼叫 petalinux 搭建環境,而不用手動進行操作呢?這點我還沒有了解到。。。。。不過應該是支援的吧?
3 - The end?
結合著上章的描述,前面繪製的 Vitis 統一平臺概覽圖應該也比較容易理解了。Vitis 的誕生本質是為了方便開發者們對賽靈思產品進行開發,不用再像過往一樣,開發到某個步驟需要跳轉到某個軟體。大家也可以看看前面推薦的B站up主 吃貓糧的耗子 的相關視訊教程,他的視訊在我 踩坑 瞭解期間,給予了不少幫助,在這裡對他表示衷心的感謝。大家對 Vitis 感興趣的也可以加入他的QQ群:1146499819
關於 DPU 以及 Vitis AI ,後面如果有時間研究,應該也會做相關的記錄。不過由於論文、專案與畢業設計等等一堆干涉的存在,記錄的時間也處於不薛定諤的貓狀態,同時存在於鴿與不鴿的狀態。也許等到干涉的消失、瑪奇瑪征服電次、杜林族發酒瘋的時候,概率雲的崩塌便會導致記錄的存在變為確實吧。