0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AI引擎架構(gòu)和陣列編程要求

Xilinx賽靈思官微 ? 來(lái)源:Xilinx賽靈思官微 ? 作者:Xilinx賽靈思官微 ? 2022-12-08 09:18 ? 次閱讀

Versal AI Core 系列可借助 AI 引擎提供突破性的 AI 推斷加速。此系列應(yīng)用范圍廣泛,包括用于云端動(dòng)態(tài)工作負(fù)載以及超高帶寬網(wǎng)絡(luò),同時(shí)還可提供高級(jí)安全性功能。AI 和數(shù)據(jù)科學(xué) 家以及軟硬件開發(fā)者均可充分利用高計(jì)算密度的優(yōu)勢(shì)來(lái)加速提升任何應(yīng)用的性能。

AI 引擎是超長(zhǎng)指令字 (VLIW) 處理器陣列,具有高度優(yōu)化的單指令流多數(shù)據(jù)流 (SIMD) 矢量單元,專用于各種計(jì)算密集 型應(yīng)用,尤其是數(shù)字信號(hào)處理 (DSP)、5G 無(wú)線應(yīng)用和人工智能 (AI) 技術(shù)(如機(jī)器學(xué)習(xí) (ML))等。同時(shí),AI 引擎還是硬化的塊,可提供多級(jí)并行處理能力,包括指令級(jí)并行處理和數(shù)據(jù)級(jí)并行處理。

本指南闡述了對(duì) AI 引擎 graph 應(yīng)用進(jìn)行編譯與仿真、使用 Vitis 工具流程來(lái)集成應(yīng)用、使用 Vitis IDE、調(diào)試 AI 引擎應(yīng)用、映射器/布線器方法論、AI 引擎硬件剖析和調(diào)試方法論等內(nèi)容。

本文選取 AI 引擎架構(gòu)概述部分。

AI 引擎陣列編程要求充分理解要實(shí)現(xiàn)的算法、AI 引擎的功能以及各功能單元之間的整體數(shù)據(jù)流。AI 引擎陣列支持三種 級(jí)別的并行度:

SIMD:通過(guò)矢量寄存器,允許并行計(jì)算多個(gè)元素。

指令級(jí)別:通過(guò) VLIW 架構(gòu),允許在單個(gè)時(shí)鐘周期內(nèi)執(zhí)行多項(xiàng)指令。

多核:通過(guò) AI 引擎陣列,即可在其中并行執(zhí)行數(shù)百個(gè) AI 引擎。

雖然對(duì)于 AI 引擎而言,大部分標(biāo)準(zhǔn) C 語(yǔ)言代碼均可編譯,但代碼可能需要大幅重構(gòu)才能在 AI 引擎陣列上實(shí)現(xiàn)最優(yōu)性能。AI 引擎的優(yōu)勢(shì)在于,它能夠在每個(gè)時(shí)鐘周期內(nèi)執(zhí)行矢量 MAC 運(yùn)算、為下一項(xiàng)運(yùn)算加載 2 個(gè) 256 位矢量、存儲(chǔ)來(lái)自上一項(xiàng)運(yùn)算的單個(gè) 256 位矢量并遞增一個(gè)指針或執(zhí)行另一次標(biāo)量運(yùn)算。AI 引擎編譯器不會(huì)執(zhí)行任何自動(dòng)矢量化或基于編譯指示的矢量化。代碼必須重寫后才能使用 SIMD 內(nèi)部數(shù)據(jù)類型(例如,v8int32)和矢量?jī)?nèi)部函數(shù)(例如, mac(…)),而這些都必須在單個(gè)流水打拍循環(huán)內(nèi)執(zhí)行,才能達(dá)成最優(yōu)性能。32 位標(biāo)量 RISC 處理器具有一個(gè) ALU、 部分非線性函數(shù)和數(shù)據(jù)類型轉(zhuǎn)換。每個(gè) AI 引擎所能訪問(wèn)的存儲(chǔ)器量是有限的,這表示大型數(shù)據(jù)集需要分區(qū)。

AI 引擎內(nèi)核即 AI 引擎上運(yùn)行的函數(shù),這些函數(shù)構(gòu)成數(shù)據(jù)流 graph 規(guī)范的基本構(gòu)建塊。數(shù)據(jù)流 graph 是 Kahn 進(jìn)程網(wǎng)絡(luò),具有確定性行為,不依賴于各種計(jì)算延遲或通信延遲。AI 引擎內(nèi)核聲明為空的 C/C++ 函數(shù),通過(guò)提取窗口實(shí)參或串流實(shí)參來(lái)建立 graph 連接。內(nèi)核還可包含靜態(tài)數(shù)據(jù)和運(yùn)行時(shí)參數(shù)實(shí)參,包括異步實(shí)參或觸發(fā)實(shí)參。每個(gè)內(nèi)核都應(yīng)在其自己的源文件內(nèi)定義。

為了達(dá)成總體系統(tǒng)性能,必須廣泛閱讀了解有關(guān)架構(gòu)、分區(qū)、AI 引擎數(shù)據(jù)流 graph 生成和數(shù)據(jù)流連接最優(yōu)化等方面的 知識(shí),積累相關(guān)經(jīng)驗(yàn)。

AMD 賽靈思提供了 DSP 和通信庫(kù),其中包含經(jīng)最優(yōu)化的代碼,可用于 AI 引擎,應(yīng)盡可能多加利用。其中提供的源代碼也提供了強(qiáng)大的資源,供用戶學(xué)習(xí)有關(guān) AI 引擎內(nèi)核編碼的信息

AI 引擎組件

AI 引擎陣列由二維 AI 引擎拼塊 (tile) 陣列構(gòu)成,其中每個(gè) AI 引擎拼塊均包含一個(gè) AI 引擎、存儲(chǔ)器模塊和拼塊互連模 塊。

AI 引擎:每個(gè) AI 引擎都是一個(gè)超長(zhǎng)指令字 (VLIW) 處理器,其中包含一個(gè)標(biāo)量單元、一個(gè)矢量單元、兩個(gè)加載單元和一個(gè)存儲(chǔ)單元。

AI 引擎拼塊:每個(gè) AI 引擎拼塊都包含一個(gè) AI 引擎、一個(gè)本地存儲(chǔ)器模塊,搭配多條通信路徑以促進(jìn)拼塊間的數(shù)據(jù)交換。

AI 引擎陣列:AI 引擎陣列是指 AI 引擎拼塊的完整二維陣列。

AI 引擎程序:AI 引擎程序包含以 C/C++ 編寫的數(shù)據(jù)流 graph 規(guī)范。該程序是使用 AI 引擎工具鏈來(lái)編譯并執(zhí)行的。

AI 引擎內(nèi)核:內(nèi)核是使用 AI 引擎矢量數(shù)據(jù)類型和內(nèi)部函數(shù)以 C/C++ 編寫的。這些函數(shù)均為 AI 引擎上運(yùn)行的計(jì)算函數(shù)。內(nèi)核構(gòu)成數(shù)據(jù)流 graph 規(guī)范的基本構(gòu)建塊。

ADF graph:ADF graph 是具有單個(gè) AI 引擎內(nèi)核或多個(gè) AI 引擎內(nèi)核(以數(shù)據(jù)串流連接)的網(wǎng)絡(luò)。它憑借如下特定構(gòu)造來(lái)與可編程邏輯、全局存儲(chǔ)器和處理器系統(tǒng)進(jìn)行交互,此類構(gòu)造有:PLIO(graph 編程中的端口屬性,用于建立往來(lái)可編程邏輯的串流連接)、GMIO(graph 編程中的端口屬性,用于建立往來(lái)全局存儲(chǔ)器的外部存儲(chǔ)器映射連接)和 RTP。

工具

Vitis 集成設(shè)計(jì)環(huán)境

Vitis 集成設(shè)計(jì)環(huán)境 (IDE) 可用于為賽靈思器件執(zhí)行系統(tǒng)編程,包括含多個(gè) AI 引擎內(nèi)核的 Versal 器件。在此工具中,有下列功能特性可用。

最優(yōu)化 C/C++ 編譯器,用于編譯內(nèi)核與 graph 代碼,執(zhí)行所有必要的連接、布局和檢查以確保器件上的各項(xiàng)功能正常工作。

周期近似的仿真器、加速的功能仿真器和剖析工具。

調(diào)試環(huán)境,可在仿真環(huán)境和硬件環(huán)境下使用。

Vitis 命令行工具

命令行工具可用于構(gòu)建、仿真以及生成輸出文件和報(bào)告。捕獲由 IDE 生成的命令行輸出后,有助于后續(xù)集成到客戶構(gòu)建環(huán)境內(nèi)。Vitis 分析器 IDE 可用于查看報(bào)告并分析由命令行工具生成的輸出文件和報(bào)告。

Vitis Model Composer

Vitis Model Composer 可提供基于 MATLABSimulink 的高層次圖形輸入環(huán)境,用于包含 AI 引擎、HLS 和 RTL 組件的設(shè)計(jì)仿真與代碼生成。

將 AI 引擎內(nèi)核、graph、HLS 內(nèi)核與基于 RTL 的塊導(dǎo)入同一個(gè) Simulink 設(shè)計(jì),用于快速協(xié)同仿真。

從 Simulink 庫(kù)瀏覽器中,將經(jīng)過(guò)最優(yōu)化的 AI 引擎函數(shù)(例如,有限脈沖響應(yīng) (FIR) 和 FFT 濾波器)拖放到設(shè)計(jì)中。

使用 MATLAB 或 Simulink 中生成的激勵(lì)來(lái)驗(yàn)證設(shè)計(jì)、直觀顯示結(jié)果并將結(jié)果與黃金參考結(jié)果進(jìn)行比較。生成 graph 代碼并測(cè)試矢量。

匯編導(dǎo)入的代碼和塊庫(kù)代碼以供饋送到下游工具中。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29398

    瀏覽量

    267695
  • 引擎
    +關(guān)注

    關(guān)注

    1

    文章

    357

    瀏覽量

    22500

原文標(biāo)題:AI 引擎工具和流程用戶指南

文章出處:【微信號(hào):賽靈思,微信公眾號(hào):Xilinx賽靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【「大模型時(shí)代的基礎(chǔ)架構(gòu)」閱讀體驗(yàn)】+ 未知領(lǐng)域的感受

    算法的引擎GPU、GPU硬件架構(gòu)剖析、GPU服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)、GPU集群的網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)、GPU板卡級(jí)算力調(diào)度技術(shù)、基于云平臺(tái)的GPU集群的管理與運(yùn)營(yíng)等等: 翻閱部分章節(jié),從GPU板卡到GPU服務(wù)器
    發(fā)表于 10-08 10:40

    AI引擎機(jī)器學(xué)習(xí)陣列指南

    AMD Versal AI Core 系列和 Versal AI Edge 系列旨在憑借 AI 引擎機(jī)器學(xué)習(xí) ( ML ) 架構(gòu)來(lái)提供突破性
    的頭像 發(fā)表于 09-18 09:16 ?240次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>引擎</b>機(jī)器學(xué)習(xí)<b class='flag-5'>陣列</b>指南

    ai服務(wù)器是什么架構(gòu)類型

    AI服務(wù)器,即人工智能服務(wù)器,是專門為人工智能應(yīng)用設(shè)計(jì)的高性能計(jì)算服務(wù)器。AI服務(wù)器的架構(gòu)類型有很多種,以下是一些常見的架構(gòu)類型: CPU架構(gòu)
    的頭像 發(fā)表于 07-02 09:51 ?774次閱讀

    螞蟻數(shù)科發(fā)布新一代融合AI風(fēng)控引擎“AIR Engine”

    在數(shù)字化浪潮的推動(dòng)下,金融科技領(lǐng)域的風(fēng)控技術(shù)正迎來(lái)新的突破。近日,螞蟻數(shù)科旗下的蟻盾風(fēng)控團(tuán)隊(duì)正式發(fā)布了新一代融合AI風(fēng)控引擎——“AIR Engine(AIFUSERiskEngine)”,該引擎在原有的決策式
    的頭像 發(fā)表于 06-26 18:20 ?1118次閱讀

    什么是現(xiàn)場(chǎng)可編程邏輯陣列?它有哪些特點(diǎn)和應(yīng)用?

    在電子工程領(lǐng)域,現(xiàn)場(chǎng)可編程邏輯陣列(Field Programmable Logic Array,簡(jiǎn)稱FPLA)是一種具有強(qiáng)大靈活性和可編程性的半導(dǎo)體器件。它屬于可編程邏輯器件(PLD)的一種,通過(guò)
    的頭像 發(fā)表于 05-23 16:25 ?681次閱讀

    FX3系列編程手冊(cè)應(yīng)用指令說(shuō)明書

    電子發(fā)燒友網(wǎng)站提供《FX3系列編程手冊(cè)應(yīng)用指令說(shuō)明書.pdf》資料免費(fèi)下載
    發(fā)表于 05-11 09:33 ?0次下載

    直流可編程電子負(fù)載IT8500系列編程與語(yǔ)法指南

    電子發(fā)燒友網(wǎng)站提供《直流可編程電子負(fù)載IT8500系列編程與語(yǔ)法指南.pdf》資料免費(fèi)下載
    發(fā)表于 04-14 09:56 ?2次下載

    現(xiàn)場(chǎng)可編程陣列簡(jiǎn)介

    現(xiàn)場(chǎng)可編程陣列(FPGA)是一種由半導(dǎo)體材料制成的集成電路,用戶購(gòu)買后可以重新編程或配置,以滿足特定功能或應(yīng)用需求。其控制程序存儲(chǔ)在內(nèi)存中,加電后,程序自動(dòng)裝載到芯片執(zhí)行。FPGA的基本結(jié)構(gòu)包括
    的頭像 發(fā)表于 03-27 14:48 ?459次閱讀

    現(xiàn)場(chǎng)可編程陣列設(shè)計(jì)流程

    現(xiàn)場(chǎng)可編程陣列(FPGA)設(shè)計(jì)流程是一個(gè)綜合性的過(guò)程,它涵蓋了從需求分析到最終實(shí)現(xiàn)的各個(gè)環(huán)節(jié)。下面將詳細(xì)介紹FPGA設(shè)計(jì)流程的主要步驟。
    的頭像 發(fā)表于 03-16 16:38 ?1883次閱讀

    現(xiàn)場(chǎng)可編程陣列是什么

    現(xiàn)場(chǎng)可編程陣列(Field Programmable Gate Array,簡(jiǎn)稱FPGA)是一種超大規(guī)???b class='flag-5'>編程邏輯器件,由可編程邏輯資源、可編程
    的頭像 發(fā)表于 03-16 16:38 ?2344次閱讀

    fpga芯片架構(gòu)介紹

    FPGA(現(xiàn)場(chǎng)可編程陣列)芯片架構(gòu)是一種高度靈活和可編程的集成電路架構(gòu),它以其獨(dú)特的結(jié)構(gòu)和功能,在現(xiàn)代電子系統(tǒng)中扮演著至關(guān)重要的角色。FP
    的頭像 發(fā)表于 03-15 14:56 ?626次閱讀

    fpga是什么架構(gòu)

    FPGA(現(xiàn)場(chǎng)可編程陣列)的架構(gòu)主要由可配置邏輯模塊(CLB)、輸入/輸出模塊(IOB)以及可編程互連資源組成。
    的頭像 發(fā)表于 03-14 17:05 ?729次閱讀

    AMD發(fā)布適用于Linux系統(tǒng)的XDNA驅(qū)動(dòng),助力APU AI引擎

    AMD于去年推出了Ryzen 7040“鳳凰城”系列APU,其中首次搭載了基于Xilinx IP的XDNA架構(gòu)AI引擎。借助此引擎,PyTorch和TensorFlow等機(jī)器學(xué)習(xí)框架的
    的頭像 發(fā)表于 01-30 14:04 ?833次閱讀

    AI引擎內(nèi)核與計(jì)算圖編程指南

    電子發(fā)燒友網(wǎng)站提供《AI引擎內(nèi)核與計(jì)算圖編程指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 10:50 ?0次下載
    <b class='flag-5'>AI</b><b class='flag-5'>引擎</b>內(nèi)核與計(jì)算圖<b class='flag-5'>編程</b>指南

    FPGA現(xiàn)場(chǎng)可編程陣列的綜合指南

    現(xiàn)場(chǎng)可編程陣列 (FPGA) 是可以在制造后進(jìn)行編程和重新編程以實(shí)現(xiàn)數(shù)字邏輯功能的半導(dǎo)體器件。
    的頭像 發(fā)表于 12-07 17:15 ?621次閱讀
    FPGA現(xiàn)場(chǎng)可<b class='flag-5'>編程</b>門<b class='flag-5'>陣列</b>的綜合指南