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

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

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

如何使用SLX FPGA優(yōu)化人臉檢測數(shù)據(jù)中心的OpenCL AI內(nèi)核?

電子工程師 ? 來源:虹科FPGA團(tuán)隊(duì) ? 作者:虹科FPGA團(tuán)隊(duì) ? 2021-05-08 14:55 ? 次閱讀

本案例介紹了如何使用Silexica的SLX FPGA優(yōu)化人臉檢測數(shù)據(jù)中心的OpenCL AI內(nèi)核。

引言

FPGA正越來越多地被用作數(shù)據(jù)中心的協(xié)處理器。這一轉(zhuǎn)變背后的驅(qū)動(dòng)力是利用FPGA的并行特性的AI應(yīng)用。Xilinx Alveo系列加速器卡使用PCI Express接口連接到x86處理器,在這個(gè)領(lǐng)域非常流行。對(duì)于這些加速器卡的編程,你可以使用自上而下的方法,從頂級(jí)的C/C++和OpenCL應(yīng)用程序開始,然后向低級(jí)別的內(nèi)核工作,或者使用自下而上的方法,將內(nèi)核塊編譯成Xilinx對(duì)象(.xo),然后可以在以后的階段連接成二進(jìn)制。

與自頂向下的流相比,自底向上的流程有幾個(gè)優(yōu)點(diǎn)。(1) 它允許將內(nèi)核的設(shè)計(jì)、驗(yàn)證和優(yōu)化與主應(yīng)用程序分開。(2) 它通過將設(shè)計(jì)分割成更小的組件,為內(nèi)核的開發(fā)和優(yōu)化提供更快的迭代周期。(3) 它有利于重復(fù)使用;一個(gè)(.xo)文件的集合可以像庫一樣被重復(fù)使用。

在本應(yīng)用案例中,我們使用人臉檢測應(yīng)用作為參考設(shè)計(jì),展示設(shè)計(jì)者在使用Vitis自下而上流程時(shí),如何使用SLX FPGA來優(yōu)化內(nèi)核。請(qǐng)注意,同樣的方法也適用于從頭開始設(shè)計(jì)內(nèi)核或從Vitis HLS導(dǎo)入現(xiàn)有內(nèi)核。

開發(fā)流程

創(chuàng)建該應(yīng)用需要使用Silexica和Xilinx的以下開發(fā)工具。

● SLX FPGA版本2020.4-sp1● VitisLibraries 2020.2版● Vitis高級(jí)合成2020.2版

● Vitis統(tǒng)一軟件平臺(tái)2020.2版

整個(gè)端到端流程如圖1所示。該流程從創(chuàng)建一個(gè)新的SLX項(xiàng)目開始。但是,如果您有一個(gè)現(xiàn)有的Vitis HLS項(xiàng)目,SLX FPGA可以直接導(dǎo)入它。

54e32fa6-a9f6-11eb-9728-12bb97331649.png

圖1:Vitis自底向上項(xiàng)目的SLX FPGA工作流程

一、創(chuàng)建并配置SLX FPGA項(xiàng)目

54baee24-a9f6-11eb-9728-12bb97331649.png啟動(dòng)SLX FPGA,點(diǎn)擊“New SLX project”圖標(biāo),啟動(dòng)項(xiàng)目創(chuàng)建向?qū)?。?chuàng)建一個(gè)新的SLX FPGA項(xiàng)目,如圖2所示。下一步是配置這個(gè)項(xiàng)目。

5536701c-a9f6-11eb-9728-12bb97331649.png

圖2:創(chuàng)建一個(gè)新的SLX FPGA項(xiàng)目

當(dāng)你創(chuàng)建一個(gè)新的項(xiàng)目時(shí),配置編輯器會(huì)自動(dòng)出現(xiàn),但你也可以通過點(diǎn)擊橙色的齒輪按鈕隨時(shí)調(diào)出它。如圖3所示,將你的應(yīng)用程序源文件拖放到項(xiàng)目的spec文件夾中。在本案例中,我們從Rosette基準(zhǔn)1中抽取人臉檢測應(yīng)用。接下來,你需要指定FPGA部件號(hào)和構(gòu)建選項(xiàng)。對(duì)于這個(gè)應(yīng)用,我們的目標(biāo)是Alveo U280 FPGA。在FPGA部件欄,選擇xcu280-fsvh2892-2L-e。要設(shè)置構(gòu)建選項(xiàng),輸入clean、build和run命令,如圖3所示。對(duì)于‘make’項(xiàng)目,如圖,請(qǐng)確認(rèn)makefile沒有使用硬編碼編譯器,而是使用(CC)和(CXX)環(huán)境變量來分別引用C和C++編譯器。SLX將在不同的分析階段用其專有的編譯器覆蓋這些變量。Run命令執(zhí)行testbench(也包括在基準(zhǔn)套件中),以確保功能的正確性,也用于分析應(yīng)用程序的動(dòng)態(tài)行為。

5560afda-a9f6-11eb-9728-12bb97331649.png

圖3:配置一個(gè)新的SLX FPGA項(xiàng)目

54baee24-a9f6-11eb-9728-12bb97331649.png這些基本配置完成后,我們可以繼續(xù)為我們的應(yīng)用程序選擇頂級(jí)硬件函數(shù),并設(shè)置正確的接口。點(diǎn)擊“函數(shù)映射”按鈕,打開功能映射編輯器。如果你確定頂層硬件函數(shù),檢查它的可綜合性問題,并使用函數(shù)映射編輯器中的右鍵菜單將其映射到FPGA上?;蛘?,運(yùn)行自動(dòng)選擇FPGA功能,讓SLX自動(dòng)選擇頂層的硬件函數(shù)。對(duì)于這個(gè)人臉識(shí)別應(yīng)用,我們選擇face_detect_sw作為我們的頂級(jí)硬件函數(shù)。一旦正確選擇了頂層硬件函數(shù),函數(shù)映射編輯器將看起來像圖4,所有映射到FPGA的函數(shù)將有一個(gè)紅色邊框。

557e236c-a9f6-11eb-9728-12bb97331649.png

圖4:SLX FPGA函數(shù)映射編輯器

現(xiàn)在我們準(zhǔn)備為這個(gè)函數(shù)選擇接口。在函數(shù)映射編輯器中選擇頂級(jí)硬件函數(shù)后,點(diǎn)擊properties標(biāo)簽,用左側(cè)的菜單打開接口選擇,如圖5所示。為所有數(shù)組和指針接口選擇axi_m接口,為標(biāo)量選擇s_axilite接口。這將生成在Alveo加速器卡上使用Xilinx對(duì)象所需的接口pragmas。此外,SLX的優(yōu)化引擎現(xiàn)在意識(shí)到了接口限制,并相應(yīng)地選擇了優(yōu)化原則。

559d341e-a9f6-11eb-9728-12bb97331649.png

圖5:SLX FPGA接口選擇

在正確選擇了所有接口后,我們現(xiàn)在設(shè)置使用SLX FPGA優(yōu)化和生成pragmas。

二、在SLX FPGA中生成HLS pragmas

54baee24-a9f6-11eb-9728-12bb97331649.png

生成HLS pragmas有兩個(gè)步驟:

1. 在FPGA中查找并并行化循環(huán)

2. 生成插入HLS注釋的代碼

在第一步中,SLX的優(yōu)化引擎搜索可能的解決方案的設(shè)計(jì)空間,以確定最優(yōu)的實(shí)用程序和參數(shù)集。設(shè)計(jì)空間包括:(1)循環(huán)的不同并行化選項(xiàng),即針對(duì)不同展開因子采用流水線或unroll;(2)數(shù)組的多維分割和重構(gòu)選項(xiàng)(完全分割或循環(huán)分割);

(3)函數(shù)層次結(jié)構(gòu):內(nèi)聯(lián)或阻塞。

對(duì)于這個(gè)特定的例子,這將導(dǎo)致大約1.32 x e19的設(shè)計(jì)點(diǎn),SLX的優(yōu)化引擎將在70秒內(nèi)收斂到一個(gè)解決方案。

55cd78b8-a9f6-11eb-9728-12bb97331649.png

圖6:SLX FPGA提示視圖

圖6顯示了SLX FPGA提示視圖。提示視圖中的第四列和第五列顯示了應(yīng)用程序中不同函數(shù)和循環(huán)的CPU總成本和FPGA總成本。FPGA總成本是對(duì)特定功能或回路的延遲估計(jì)。這對(duì)于幫助開發(fā)人員集中精力進(jìn)行優(yōu)化特別有用。例如,第33行(圖6)上的weekClassifier函數(shù)在純軟件實(shí)現(xiàn)中花費(fèi)24.4%的CPU時(shí)間。然而,它對(duì)FPGA實(shí)現(xiàn)中的關(guān)鍵路徑延遲的貢獻(xiàn)僅為3.63%。

相比之下,在純軟件實(shí)現(xiàn)中,cascadeClassifier函數(shù)的第4行上的循環(huán)(圖6)花費(fèi)了79.9%的CPU時(shí)間,但貢獻(xiàn)了97.2%的FPGA關(guān)鍵路徑延遲。提示視圖還突出顯示了攜帶依賴關(guān)系的關(guān)鍵循環(huán)。請(qǐng)注意,SLX FPGA不認(rèn)為所有的lcd都是相等的,并將可以忽略的lcd(例如,歸納和縮減變量)從關(guān)鍵的lcd中分離出來。這些信息可以幫助開發(fā)人員節(jié)省時(shí)間,使他們能夠?qū)⒕性贔PGA實(shí)現(xiàn)中真正重要的應(yīng)用程序部分。

55de6cfe-a9f6-11eb-9728-12bb97331649.png

圖7:顯示自動(dòng)編譯插入的SLX FPGA代碼生成向?qū)螕簟癎enerate HLS Code”按鈕 將打開代碼轉(zhuǎn)換向?qū)В鐖D7所示。在這里,用戶可以檢查生成的代碼與原始版本的代碼并選擇/取消代碼生成的pragmas,以便對(duì)實(shí)現(xiàn)進(jìn)行微調(diào)。

三、在Vitis應(yīng)用項(xiàng)目中導(dǎo)入Xilinx對(duì)象

54baee24-a9f6-11eb-9728-12bb97331649.png在一個(gè)SLX FPGA項(xiàng)目的hls文件夾包含一個(gè)Vitis hls項(xiàng)目SLX優(yōu)化的源代碼。我們使用VitisHLS打開這個(gè)項(xiàng)目,并將RTL導(dǎo)出為Xilinx對(duì)象,如圖8所示。在導(dǎo)出到Vitis之前,我們需要添加Extern“C”包裝器以確保C鏈接。

55f760b0-a9f6-11eb-9728-12bb97331649.png

圖8:從Vitis HLS導(dǎo)出Xilinx對(duì)象

在Vitis工作空間中,創(chuàng)建一個(gè)新的應(yīng)用程序,使用一個(gè)alveso U280卡作為目標(biāo)設(shè)備,如圖9所示。

56066d3a-a9f6-11eb-9728-12bb97331649.png

圖9:在Vitis統(tǒng)一平臺(tái)中創(chuàng)建應(yīng)用程序項(xiàng)目創(chuàng)建項(xiàng)目之后,我們將.xo文件導(dǎo)入內(nèi)核的src文件夾,如圖10所示。導(dǎo)入.xo文件后,單擊“添加硬件功能”按鈕,并選擇列表face_detect_sw。

562db9bc-a9f6-11eb-9728-12bb97331649.png

圖10:在Vitis應(yīng)用程序項(xiàng)目中導(dǎo)入內(nèi)核開發(fā)人員現(xiàn)在可以利用加速的face_detect_sw內(nèi)核創(chuàng)建更廣泛的應(yīng)用程序,該應(yīng)用程序運(yùn)行在x86主機(jī)上。

5655493c-a9f6-11eb-9728-12bb97331649.png

圖11:Vitis Analyzer系統(tǒng)圖

性能改進(jìn)

在綜合設(shè)計(jì)的基礎(chǔ)上,對(duì)SLX優(yōu)化后的內(nèi)核與未優(yōu)化前的內(nèi)核的性能和資源利用率進(jìn)行了比較。對(duì)于這個(gè)特殊的設(shè)計(jì),我們?cè)试SSLX FPGA使用選定設(shè)備上的所有可用資源;但是,如果有必要,還可以添加其他約束。表1顯示了結(jié)果的摘要。我們發(fā)現(xiàn)LUT增加3倍,延遲減少7.8倍,F(xiàn)F增加2.4倍,DSP塊增加2.7倍。對(duì)于alveso卡來說,這種資源利用率的增加并不是一個(gè)大問題,因?yàn)樗匈Y源的利用率仍然低于5%。如果需要更高的性能,SLXFPGA中可以提供大量額外的分析功能,以幫助指導(dǎo)設(shè)計(jì)者更快更有效地重構(gòu)他們的代碼。

結(jié)論

本案例展示了如何利用Vitis自下而上的內(nèi)核流程,將SLX FPGA用于優(yōu)化針對(duì)PCIe連接Alveo卡的內(nèi)核。在這個(gè)例子中,SLX FPGA能夠減少一個(gè)常用的人工智能內(nèi)核的延遲,用于人臉檢測。該方法可應(yīng)用于大多數(shù)基于賽靈思的數(shù)據(jù)中心應(yīng)用,包括亞馬遜F1實(shí)例。無論是從頭開始開發(fā)應(yīng)用,還是重復(fù)使用現(xiàn)有的設(shè)計(jì)并根據(jù)需求進(jìn)行定制,都可以應(yīng)用這種方法。

原文標(biāo)題:虹科方案 | 使用HLS優(yōu)化人臉識(shí)OpenCL AI內(nèi)核

文章出處:【微信公眾號(hào):FPGA技術(shù)支持】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598931
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28877

    瀏覽量

    266232
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    7315

原文標(biāo)題:虹科方案 | 使用HLS優(yōu)化人臉識(shí)OpenCL AI內(nèi)核

文章出處:【微信號(hào):HK-FPGA_Dep,微信公眾號(hào):FPGA技術(shù)支持】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AI時(shí)代,我們需要怎樣的數(shù)據(jù)中心?AI重新定義數(shù)據(jù)中心

    超過60%的中國企業(yè)計(jì)劃在未來12至24個(gè)月內(nèi)部署生成式人工智能。AI、模型的構(gòu)建,將顛覆數(shù)據(jù)中心基礎(chǔ)設(shè)施的建設(shè)、運(yùn)維和運(yùn)營。一個(gè)全新的數(shù)據(jù)中心智能化時(shí)代已經(jīng)拉開序幕。
    發(fā)表于 07-16 11:33 ?294次閱讀
    <b class='flag-5'>AI</b>時(shí)代,我們需要怎樣的<b class='flag-5'>數(shù)據(jù)中心</b>?<b class='flag-5'>AI</b>重新定義<b class='flag-5'>數(shù)據(jù)中心</b>

    八大科技巨頭攜手推進(jìn)UALink,加速數(shù)據(jù)中心AI互聯(lián)

    近日,英特爾、Google、微軟、Meta等八家科技巨頭宣布共同成立超加速器鏈接(UALink)推廣小組,致力于推動(dòng)數(shù)據(jù)中心內(nèi)AI加速器芯片的連接組件發(fā)展。UALink旨在優(yōu)化數(shù)據(jù)中心
    的頭像 發(fā)表于 05-31 10:59 ?655次閱讀

    HNS 2024:星河AI數(shù)據(jù)中心網(wǎng)絡(luò),賦AI時(shí)代新動(dòng)能

    華為數(shù)據(jù)通信創(chuàng)新峰會(huì)2024在巴庫隆重舉辦,在“星河AI數(shù)據(jù)中心網(wǎng)絡(luò),賦AI時(shí)代新動(dòng)能”主題論壇中,華為面向中東中亞地區(qū)發(fā)布星河AI
    的頭像 發(fā)表于 05-15 09:15 ?439次閱讀
    HNS 2024:星河<b class='flag-5'>AI</b><b class='flag-5'>數(shù)據(jù)中心</b>網(wǎng)絡(luò),賦<b class='flag-5'>AI</b>時(shí)代新動(dòng)能

    蘋果正在研發(fā)全新數(shù)據(jù)中心AI芯片

    蘋果正在秘密研發(fā)一款全新的數(shù)據(jù)中心AI芯片,這一項(xiàng)目在公司內(nèi)部被稱為“ACDC”,并且已經(jīng)經(jīng)過了數(shù)年的精心籌備。據(jù)華爾街日?qǐng)?bào)的知情人士透露,這款芯片的設(shè)計(jì)目標(biāo)是為了優(yōu)化蘋果數(shù)據(jù)中心服務(wù)
    的頭像 發(fā)表于 05-08 09:40 ?317次閱讀

    數(shù)據(jù)中心UPS系統(tǒng)運(yùn)行能耗優(yōu)化探討與應(yīng)用

    的能效指標(biāo)起到重要作用,當(dāng)?shù)厥须姷墓╇娰|(zhì)量對(duì)UPS系統(tǒng)運(yùn)行有重要的影響,靈活的UPS系統(tǒng)運(yùn)行方式能大程度對(duì)數(shù)據(jù)中心能耗優(yōu)化。 安科瑞薛瑤瑤 關(guān)鍵詞:UPS;能效指標(biāo);設(shè)備選型;電源質(zhì)量;能耗優(yōu)化 一、前言 全國人大代表、中國信息
    的頭像 發(fā)表于 04-11 15:36 ?350次閱讀
    <b class='flag-5'>數(shù)據(jù)中心</b>UPS系統(tǒng)運(yùn)行能耗<b class='flag-5'>優(yōu)化</b>探討與應(yīng)用

    #mpo極性 #數(shù)據(jù)中心mpo

    數(shù)據(jù)中心MPO
    jf_51241005
    發(fā)布于 :2024年04月07日 10:05:13

    是德科技推出AI數(shù)據(jù)中心測試平臺(tái)

    是德科技近期宣布,針對(duì)蓬勃發(fā)展的AI和ML基礎(chǔ)設(shè)施生態(tài)系統(tǒng),隆重推出了全新的AI數(shù)據(jù)中心測試平臺(tái)。該平臺(tái)專為加速AI/ML網(wǎng)絡(luò)驗(yàn)證與優(yōu)化而設(shè)
    的頭像 發(fā)表于 03-08 10:17 ?567次閱讀

    是德科技推出AI數(shù)據(jù)中心測試平臺(tái)旨在加速AI/ML網(wǎng)絡(luò)驗(yàn)證和優(yōu)化的創(chuàng)新

    2024年2月29日,是德科技(Keysight Technologies,Inc.)宣布,針對(duì)人工智能(AI)和機(jī)器學(xué)習(xí)(ML)基礎(chǔ)設(shè)施生態(tài)系統(tǒng),推出了 AI數(shù)據(jù)中心測試平臺(tái),旨在加速AI
    的頭像 發(fā)表于 02-29 09:32 ?500次閱讀
    是德科技推出<b class='flag-5'>AI</b><b class='flag-5'>數(shù)據(jù)中心</b>測試平臺(tái)旨在加速<b class='flag-5'>AI</b>/ML網(wǎng)絡(luò)驗(yàn)證和<b class='flag-5'>優(yōu)化</b>的創(chuàng)新

    #永久鏈路 #信道測試 #數(shù)據(jù)中心

    數(shù)據(jù)中心
    jf_51241005
    發(fā)布于 :2024年02月23日 10:17:58

    #光纜水峰 #綜合布線光纜 #數(shù)據(jù)中心

    數(shù)據(jù)中心光纜
    jf_51241005
    發(fā)布于 :2024年01月15日 09:43:26

    #預(yù)端接光纜 #24芯光纜 #數(shù)據(jù)中心

    數(shù)據(jù)中心光纜
    jf_51241005
    發(fā)布于 :2023年12月08日 11:01:21

    數(shù)據(jù)中心為什么要部署FPGA?

    點(diǎn)擊上方 藍(lán)字 關(guān)注我們 FPGA 芯片具有靈活性高、應(yīng)用開發(fā)成本低、上市時(shí)間短等優(yōu)勢使其應(yīng)用場景覆蓋了包括工業(yè)控制、網(wǎng)絡(luò)通信、消費(fèi)電子、數(shù)據(jù)中心、汽車電子、人工智能等廣泛的下游市場。 各大應(yīng)用領(lǐng)域
    的頭像 發(fā)表于 11-21 11:50 ?690次閱讀

    數(shù)據(jù)中心為什么要部署FPGA?

    FPGA 芯片在數(shù)據(jù)中心領(lǐng)域主要用于硬件加速,在云服務(wù)器廠商中已有廣泛部署。數(shù)據(jù)中心使用 FPGA 芯片代替?zhèn)鹘y(tǒng)的 CPU 方案后,處理其自定義算法時(shí)可實(shí)現(xiàn)顯著的加速效果。因此近年來,
    發(fā)表于 11-16 09:55 ?667次閱讀
    <b class='flag-5'>數(shù)據(jù)中心</b>為什么要部署<b class='flag-5'>FPGA</b>?

    適用于數(shù)據(jù)中心AI 時(shí)代的網(wǎng)絡(luò)

    十多年來,傳統(tǒng)的云數(shù)據(jù)中心一直是計(jì)算基礎(chǔ)設(shè)施的基石,滿足了各種用戶和應(yīng)用程序的需求。然而,近年來,為了跟上技術(shù)的進(jìn)步和對(duì) AI 驅(qū)動(dòng)的計(jì)算需求的激增,數(shù)據(jù)中心進(jìn)行了發(fā)展。 本文探討了網(wǎng)絡(luò)在塑造
    的頭像 發(fā)表于 10-27 20:05 ?446次閱讀
    適用于<b class='flag-5'>數(shù)據(jù)中心</b>和 <b class='flag-5'>AI</b> 時(shí)代的網(wǎng)絡(luò)

    【KV260視覺入門套件試用體驗(yàn)】五、VITis AI (人臉檢測和人體檢測)

    --clean 二、Vitis AI 人臉檢測 在邊緣平臺(tái)或數(shù)據(jù)中心平臺(tái)上運(yùn)行Vitis AI Library 示例之前,請(qǐng)下載vit
    發(fā)表于 09-26 16:22