《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > AET原創 > 老兵新傳——“闖入”高性能計算領域的FPGA

老兵新傳——“闖入”高性能計算領域的FPGA

云課堂:FPGA異構計算——原理與方法之精華問答整理
2016-10-09
來源:電子技術應用

       自1985年首款FPGA誕生以來,FPGA已經是一名在電子信息領域征戰了30年的老兵,這名戰功赫赫的老兵如今已經正式開赴了一個新的戰場。從2011年Altera公司發布支持利用OpenCL來開發FPGA的SDK工具以后,采用CPU+FPGA構成異構計算系統成為另一種具有競爭力的解決方案。為了讓更多網友了解FPGA異構計算系統的原理、架構和開發流程,《電子技術應用》特別邀請了電子科技大學黃樂天博士和電子科技大學“成電杰出學生”蒲宇亮電子技術應用·云課堂進行了一場公益演講。

       雖然開講時間安排在9月25日,一個周日晚上的八點,仍有100多網友參與了學習,隨后幾天學習人數已經超過200人。

       在演講過程中,很多網友都提出了自己在學習CPU+FPGA異構計算中遇到的問題,授課講師黃樂天、蒲宇亮都進行了詳細的解答。

       感興趣的網友還可以通過以下網址觀看學習視頻:

       http://webinar.chinaaet.com/zh-CN/Chinaaet/Youke/CourseDetail?courseId=541
授課講師簡介:

圖片1.png

黃樂天,電子科技大學,講師,博士,《FPGA異構計算》一書的第一作者。

《電子技術應用》著名專家博主:老莫(http://blog.chinaaet.com/molf)主要研究方向為:多處理器片上系統與片上網絡;高能效并行計算系統;基于FPGA的新型異構計算系統設計與實現。

圖片2.png

蒲宇亮,電子科技大學“成電杰出學生”,中興通訊公司工程師。

研究生期就讀于電子科技大學——Altera聯合實驗室,主要研究方向為基于FPGA的新型異構計算系統,是《FPGA異構計算》一書的主要作者之一。2016年7月以 “藍劍”精英人才計劃(該計劃全國僅招50人)身份入職中興通訊。

精華問答整理

問題:使用的平臺是SoC還是PCIe的FPGA?

黃樂天(以下簡稱黃):我們兩個平臺都有使用過。SoC版本使用的是友晶公司提供的DE1-SoC開發板,基于PCIe的版本使用的是友晶公司提供的DE5-net,這二者在開發方法上并無本質區別,只是在開發流程和BSP支持上稍有不同。友晶公司的技術人員提供了很好的支持。

蒲宇亮(以下簡稱蒲):兩者都可以,SoC資源較少,采用串口傳輸數據。若是對計算時間有嚴格要求則需采用PCIe傳輸的FPGA進行實現。

 

問題:FPGA異構計算目前在中國主要應用在那些領域?異構計算能夠給這些領域帶來那些新變化?

黃:FPGA異構計算在中國目前還處于“試用階段”,有部分公司(因為他們沒有公開報道也不太好直接點名)在預研或者實驗階段嘗試在使用這一計算模式。但基于GPU的傳統異構計算已經在并行計算領域得到了較大規模的應用,如超級計算機、高性能服務器以及某些專用仿真設備。

蒲:基于OpenCL的FPGA異構計算比較適合用在算法中存在大規模并行計算特性的系統中,類似傳統的GPU并行系統,相比GPU系統能夠帶來更低的功耗和更好的計算能效,能降低運維成本。

 

問題:多核異構是指不同的處理器集成到一起?CPU與DSP、FPGA算異構嗎?

黃:不同的處理器集成到一起只不過是異構計算的一個要素而已,更重要的是要用這些不同的處理器組合到一起去實現通用計算。這就涉及到一系列開發方法、流程和工具。如果不是去實現通用計算,其實就是一種獨特形式的“嵌入式系統設計”而已。這部分內容在課程視頻中有專門講到。

蒲:目前研究主要是用專用硬件如DSP、FPGA對原來的CPU系統進行加速,但并沒有進一步挖掘原系統的計算能力,未來商用的異構計算系統應該是主機端和設備端各司其職,將計算密度大的模塊放在設備端進行加速,而將邏輯控制多的模塊放在主機端,這樣才能充分發揮異構系統的優勢。

 

問題:異構的處理器時鐘如何同步?

黃:并不需要時鐘級別的同步,而是在系統級別解決同步的問題。利用的是多層存儲結構,基于barrier的編程方法等使數據一致性得到保證即可。這是在任何多核心系統或者復雜SoC設計中都被經常采用的方法。如果對這個問題希望有深入的了解,應該閱讀多核片上系統設計方面的書籍或論文。

 

問題:用ARM體系結構和X86體系結構作為Host,有什么區別嗎?

黃:本質上沒有區別,Host需要是一個處理器來實現“主控”的功能,完成一些“準備性”和“總結性”的工作。區別只在于ARM體系結構的處理器和X86體系結構的處理器在執行程序時本身性能以及能效上的差別。

蒲:Altera的SoC-de1開發板將ARM和FPGA集成到片上,相比X86體系中需要將數據在Host端和設備端傳輸,帶來的好處是傳輸速度快,延遲小。

 

問題:Host和Device對OpenCL的效能哪個影響大?

黃:由于運算加速主要依靠Device來實現,因此Device的影響更大。但反過來說,OpenCL編程的時候需要考慮到不同Device的特性來對代碼結構和代碼風格加以優化。我們之前發表過多篇論文來討論這個問題,在視頻課程的最后部分有所介紹。

蒲:Device端影響更大,因為其計算密度大,在系統設計時研究將哪些模塊放在Device端是一個關鍵點。

 

問題:異構計算主要用于哪些領域?

黃:目前主要用于運算加速,也就是高性能計算。但由于高性能計算用途廣泛,因此也可以說異構計算可以被用于很多領域。包括但不限于金融分析、天氣預報、大規模仿真等。

 

問題:KNN算法中FPGA仍然是加速器,多核異構與X86+FPGA有啥區別?

黃:我猜想這位朋友想問的是異構計算和利用傳統的設計方法在FPGA上實現一個加速器之間有什么區別?這其實就是代表了開發方法的不同。用傳統的設計方法在FPGA上實現一個加速器是將CPU上的軟件和FPGA上的加速器分開設計,也就是傳統的嵌入式系統的設計方法。而異構計算是在統一的開發平臺,統一的編程模型下開發。使用OpenCL的編程框架使得CPU+FPGA架構開發“一體化”。

 

問題:開發者在適應異構計算時,采用的程序開發有哪些需要特別注意到的地方嗎?

黃:這個問題很大,首先需要符合編程規范,其次需要根據器件的特點做一些代碼結構上的優化。具體內容可以閱讀《FPGA異構計算》這本書以及OpenCL編程相關章節。

蒲:需要具備并行編程的思想,在系統設計時最需要考慮的是模塊劃分。

 

問題:如果我必須處理大稀疏矩陣,最好是用循環雙向鏈表,否則內存放不下,我已在CPU上實現算法了,有沒有可能實現異構運算?

黃:這種情況下需要你改變算法,在適合于矩陣運算的編程方法(如向量運算)來加以處理,才有可能實現算法的并行化。這方面的并行編程技巧和算法優化需要學習,當然這比單純的寫CPU上的串行處理程序還是要難很多。

 

問題:GPU的OpenCL內核可以直接移植到FPGA上嗎?

黃:很多時候需要修改,并不能保證能直接移植。但修改的部分并不一定太多,取決于具體的代碼。

蒲:GPU的內核代碼經過一定修改可以移植到FPGA上,這也是OpenCL強調通用性的表現。

 

問題:老師好!我想問的是,對于一個初學者。如果想進行FPGA異構計算的學習和開發,我所需要做的工作都應該包括那幾個方面呢

黃:建議首先把OpenCL的編程方法學會。由于FPGA綜合一次時間太長,所以調試代碼很困難。因此如果學習OpenCL更好的平臺是GPU,可以選擇AMD公司支持OpenCL的GPU。

蒲:1.有C\C++編程基礎2.熟悉GPU并行編程思想3.對FPGA硬件架構有一定了解即可。

 

問題:處理器之間的數據傳輸消耗的時間,是否會抵消耗費心血優化程序所帶來的性能提升呢?

黃:這確實是一個問題。所以現在要靠幾個方面來解決這一問題。首先就是單片化,把CPU和FPGA集成到一個芯片上,兩者之間的傳輸時間可以下降。第二就是采用“設備間流水”方法來適當降低這方面的影響。第三就是異構計算的適用范圍,目前更多的適用于高吞吐率的應用而非低延遲的應用。最新的研究還包括一些體系結構級的研究。

蒲:目前的內存訪問機制限制了子系統之間的頻繁交互,所以設計時應盡量將計算密度高的模塊放在一起,從而減少傳輸延遲。相信隨著硬件加速應用需求的增多,業界能夠給出更可靠完善的解決方案。

 

問題:從前面講的,異構更多的工作是在優化吧?

黃:一定程度上可以這么說,在AMD公司內部從事異構計算相關開發工作的工程師也常常被稱為“算法優化工程師”。但從廣義來講大部分做實現的工程師其實都是在做優化,傳統的FPGA工程師在實現算法的過程也可以認為是一個算法優化的過程。

 

問題:做異構計算開發與平常的FPGA開發來說,從思維、觀念上需要哪些改變?

黃:需要從更高的層級,也就是體系結構的層級上面去理解整個系統的運行過程。而不是傳統的RTL級關注的那些點。

 

問題:我現在想的是先對OpenCL在GPU的開發中具有一定的了解后,再進行移植到FPGA上。這樣的思路對么?

黃:在初期學習OpenCL的時候這樣的思路是對的,但是后期要想發揮FPGA的最大能效還需要對FPGA內部結構和OpenCL到FPGA內部資源的映射關系有全面的了解。

 

問題:FPGA可以運行多個內核程序嗎?

黃:請蒲宇亮回答。

蒲:目前一個FPGA能串行運行多個內核程序,但無法同時并行執行多個內核程序。相信隨著硬件虛擬化需求的增加以及技術的跟進,以后的標準中會對這方面有所支持。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 成人自拍视频网| 欧美日韩高清完整版在线观看免费| 国产福利精品一区二区| 一本色道久久综合狠狠躁篇| 最近高清中文在线国语字幕| 伊人久久大香线蕉精品| 色窝窝亚洲av网| 国产精品JIZZ在线观看无码| xvideos亚洲永久网址| 日本老头变态xxxx| 亚洲国产精彩中文乱码av| 精东传媒国产app| 国产乱人视频在线播放不卡| 一个色中文字幕| 天天做天天爱天天爽综合网| 丰满人妻熟妇乱又伦精品| 欧美MV日韩MV国产网站| 人人色在线视频播放| 美女色又黄一级毛片| 国产强伦姧在线观看无码| 337p日本欧洲亚洲大胆精品555588| 少妇高潮无套内谢麻豆传| 久久人人爽人人爽人人片av麻烦| 欧美成人免费一区在线播放| 低头看我是怎么c哭你的细节| 老鸭窝在线视频观看| 国产成人三级经典中文| 337p日本欧洲亚洲大胆裸体艺术| 女人喷液抽搐高潮视频| 中文字幕中文字幕| 日本福利视频导航| 亚洲一久久久久久久久| 正在播放国产伦理片| 公用玩物(np双xing总受)by单唯安| 趴在墙上揉捏翘臀求饶h| 国产欧美日韩精品丝袜高跟鞋| 97久久精品人人做人人爽| 女人张腿给男人桶视频免费版| 中文字日本乱码| 日本韩国在线视频| 亚欧洲精品在线视频免费观看|