<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 采用C/C++、OpenCL編程中的下個邏輯步驟

          采用C/C++、OpenCL編程中的下個邏輯步驟

          作者: 時間:2015-12-25 來源: 收藏

          自從賽靈思在上世紀(jì) 80 年代初期開發(fā)和推出世界首款 FPGA后,這些用途豐富的可編程邏輯器件就成為硬件工程師的 MacGyver 萬能工具。 賽靈思最近發(fā)布了 SDxTM 系列開發(fā)環(huán)境(即 SDAccelTM、SDSoCTM 和 SDNetTM), 使軟件開發(fā)人員和系統(tǒng)工程師(非 FPGA 設(shè)計人員)能夠利用賽靈思器件輕松創(chuàng)建自己的定制化軟件定義硬件,從而助力更多創(chuàng)意頭腦實現(xiàn)非凡的創(chuàng)新技術(shù)。

          本文引用地址:http://www.ex-cimer.com/article/284914.htm

          介紹這些新型環(huán)境以及賽靈思及其 聯(lián)盟成員提供的其他軟件開發(fā)資源之 前,我們先來思量一下處理架構(gòu)的演變 及其對軟件開發(fā)的影響。

          這是軟件問題…

          2000 年以前,典型的微處理器主要由一 個帶有板載內(nèi)存的巨型單片處理器內(nèi)核 和一些其他零部件組成,使 MPU 成為一 種用以開發(fā)新一代應(yīng)用的相對簡單直觀的平臺。在那之前的三十年里,微處理器廠商每隔22個月就會以摩爾定律的增長速度推出具有更高容量和性能的器件。他們會簡單地以增加時鐘速率的方式來提高性能。當(dāng)時速度最快的單片 MPU 是英特爾奔騰 4 處理器 (Pentium 4 Pro),其極限速度剛剛超 過 4GHz。這種演進對于開發(fā)人員來說非常重要,因 為隨著每代產(chǎn)品的推出,他們的程序會變得日趨復(fù) 雜,能執(zhí)行更細(xì)化的功能,而且程序運行速度更快。

          但在  21  世紀(jì)初期 ,半 導(dǎo) 體行 業(yè)改 變 了游 戲規(guī) 則,迫使開發(fā)人員根據(jù)一套新的規(guī)則進行調(diào)整。這 種轉(zhuǎn)變起始于人們意識到了如果 MPU 產(chǎn)業(yè)繼續(xù)在新 的單片 MPU 架構(gòu)中提高時鐘速率,那么鑒于芯片工藝技術(shù)的發(fā)展路線圖以及日趨惡化的晶體管漏電流問題,MPU 將很快達到與太陽相同的功率密度。

          正因為如此,MPU 產(chǎn)業(yè)快速向同質(zhì)多處理架構(gòu)轉(zhuǎn)型 ;在這種同質(zhì)多處理架構(gòu)中,計算任務(wù)被分配 給多個以較低時鐘速率運行的小型內(nèi)核。新的處理 模型讓 MPU 和半導(dǎo)體廠商能夠繼續(xù)生產(chǎn)新一代容量 更高的器件,并將更多功能集成到單個芯片中以獲 得更高性能。然而,現(xiàn)有程序無法利用新型分布式 架構(gòu),因此軟件開發(fā)人員必須想辦法開發(fā)出能夠跨 多個處理器內(nèi)核高效運行的程序。

          同時,后來的幾代芯片工藝技術(shù)繼續(xù)使晶體管 數(shù)量成倍增長,讓半導(dǎo)體公司能夠采取另一個創(chuàng)新舉措,即將不同類型的內(nèi)核集成到同一顆芯片中,創(chuàng)建出 SoC。這些異構(gòu)多處理器架構(gòu)給嵌入式軟件 開發(fā)人員提出了更多挑戰(zhàn),使軟件開發(fā)人員不得不 開發(fā)定制軟件協(xié)議棧,讓應(yīng)用能夠在目標(biāo)系統(tǒng)上實 現(xiàn)最佳運行。

          如今,半導(dǎo)體行業(yè)又一次改變游戲規(guī)則,但這 次軟件開發(fā)人員則對轉(zhuǎn)變持歡迎態(tài)度。面對另一個 功耗窘境,半導(dǎo)體和系統(tǒng)公司正在將目光轉(zhuǎn)向由 FPGA 加速的異構(gòu)處理架構(gòu)。這種架構(gòu)將 MPU 與 FPGA 緊密配合在一起,能以最小的功耗成本提高 系統(tǒng)性能。這種新興架構(gòu)最顯著的應(yīng)用是用于新型 數(shù)據(jù)中心處理架構(gòu)中。在一篇現(xiàn)在著名的論文中, 微軟研究人員展示了在架構(gòu)上將 MPU 與 FPGA 組合 在一起能實現(xiàn) 90% 的性能提升,同時功耗僅僅增加10%,在單位功耗性能方面遠(yuǎn)遠(yuǎn)優(yōu)于 MPU 與高功耗GPU 相結(jié)合而實現(xiàn)的架構(gòu)。

          通過  FPGA 加速的異構(gòu)多處理架構(gòu)的優(yōu)勢已 經(jīng)超 出了數(shù) 據(jù)中心應(yīng) 用范疇 。賽靈 思  Z yn q ? -70 00 All Programmable SoC 器件在單芯片上完美集成了 ARM 處理器和可編程邏輯,讓采用該器件的嵌入式 系統(tǒng)受益良多。使用即將推出的 Zynq UltraScale+TM MPSoC 的系統(tǒng)注定將會更加出色。Zynq UltraScale+ MPSoC  在單個器件中集成了多個 ARM?  內(nèi)核(4 個 CortexTM-A53 應(yīng)用處理器、2 個 Cortex-R5 實時處理 器和 1 個 MaliTM-400MP GPU)、可編程邏輯、多級 安全、更高安全性以及高級電源管理模塊(如圖 1 所示)。

          圖1 - Zynq UltraScale+ MPSoC

          不過,要讓這些 FPGA 加速的異構(gòu)架構(gòu)適合大規(guī)模部署并方便軟件開發(fā)人員使用,F(xiàn)PGA 廠商必須開發(fā)新的環(huán)境。在這方面,賽靈思提供了三個開 發(fā)平臺 :針對數(shù)據(jù)中心開發(fā)人員的 SDAccel、針對 嵌入式系統(tǒng)開發(fā)人員的 SDSoC,以及針對網(wǎng)絡(luò)線卡 架構(gòu)師和開發(fā)人員的 SDNet。這些賽靈思新環(huán)境讓 開發(fā)人員能夠輕松將代碼的緩慢部分放在可編程邏 輯上編程以加速程序,從而創(chuàng)建出最佳系統(tǒng)。

          面向 OpenCL、C/C++ 的 SDAccel 通過編程實現(xiàn)FPGA 加速處理

          最新的賽靈思 SDAccel 開發(fā)環(huán)境為數(shù)據(jù)中心應(yīng)用 開發(fā)人員提供一套基于 FPGA 的完整軟硬件解決方 案(圖 2)。SDAccel 環(huán)境包含一個能有效利用片上 FPGA 資源的快速的架構(gòu)優(yōu)化編譯器。該環(huán)境為開 發(fā)人員提供類似于 CPU/GPU 的熟悉的工作環(huán)境和軟 件開發(fā)流程,并具有一個用于代碼開發(fā)、特性分析 與調(diào)試的基于 Eclipse 的集成設(shè)計環(huán)境 (IDE)。利用 該環(huán)境,開發(fā)人員可以創(chuàng)建針對不同數(shù)據(jù)中心應(yīng)用 可即時換入換出而優(yōu)化的動態(tài)重配置加速器 , 可即時 換入換出。開發(fā)人員可使用該環(huán)境創(chuàng)建諸多應(yīng)用, 這些應(yīng)用能在運行時間內(nèi)將眾多內(nèi)核換入和換出 FPGA,且不會干擾服務(wù)器 CPU 與 FPGA 之間的接 口連接,從而實現(xiàn)不間斷的應(yīng)用加速。SDAccel 環(huán) 境針對的是基于 x86 服務(wù)器處理器的主機系統(tǒng),并 提供現(xiàn)成商用插電式 PCIe 卡,以增加 FPGA 功能。

          圖 2 - 面向 OpenCL、C 和 C++ 的 SDAccel 開發(fā)環(huán)境可將單位功耗性能提高 25 倍,利用 FPGA 實現(xiàn)數(shù)據(jù)中心應(yīng)用加速。

          憑借  SDAccel  環(huán)境,開發(fā)人員即使先前沒有 FPGA 經(jīng)驗也能使用 SDAccel 似曾相識的工作流程 來優(yōu)化他們的應(yīng)用,并充分發(fā)揮 FPGA 平臺作用。該 IDE 提供編碼模板和軟件庫,并可用來針對所有開發(fā)目標(biāo)進行編譯、調(diào)試和特性分析,包括 x86 上 的仿真、使用快速仿真進行性能驗證,以及 FPGA 處理器上本地執(zhí)行。該開發(fā)環(huán)境在面向數(shù)據(jù)中心的 FPGA 平臺上執(zhí)行應(yīng)用,而且能自動插入工具以實現(xiàn) 所有開發(fā)目標(biāo)。賽靈思設(shè)計的 SDAccel 環(huán)境能夠讓 CPU 和 GPU 開發(fā)人員輕松將應(yīng)用遷移到 FPGA 上, 同時在熟悉的工作流程中維護和重用 OpenCLTM、C 和 C++ 代碼。

          SDAccel 庫對于 SDAccel 環(huán)境能實現(xiàn)類似于 CPU/GPU 的開發(fā)體驗起到了重大作用。SDAccel 庫 包含低級數(shù)學(xué)庫以及生產(chǎn)力更高的庫(如 BLAS、 OpenCV 和 DSP 庫)。這些庫用 C++(而非 RTL) 編寫而成,因此開發(fā)人員可在所有開發(fā)和調(diào)試階段完全按所編寫的內(nèi)容來使用它們。在項目早期,所有開發(fā)工作都在 CPU 主機上完成。因為 SDAccel 庫 用 C++ 編寫,所以它們能夠與 CPU 目標(biāo)(創(chuàng)建一個 虛擬原型)的應(yīng)用代碼一起編譯,從而允許所有測 試、調(diào)試和初始特性分析在主機上進行。這個階段 無需 FPGA。

          SDSOC 支持 ZYNQ SOC 和 MPSOC 系統(tǒng)的嵌入式 開發(fā)

          賽靈思為嵌入式系統(tǒng)開發(fā)人員設(shè)計了 SDSoC 開發(fā)環(huán) 境,用以針對賽靈思 Zynq SoC 和即將推出的 Zynq UltraScale+ MPSoC 進行編程。SDSoC 環(huán)境提供極 大簡化的嵌入式 C/C++ 應(yīng)用編程體驗,包括一個可 在裸機或操作系統(tǒng)(例如 Linux 和 FreeRTOS)上運行的簡單易用的 Eclipse IDE。該環(huán)境是一種用于異構(gòu) Zynq SoC 和 Zynq MPSoC 平臺部署的綜合而全面 的開發(fā)平臺(圖 3)。SDSoC 環(huán)境還配套提供業(yè)界 首款 C/C++ 全系統(tǒng)優(yōu)化編譯器,支持系統(tǒng)級特性分 析、可編程邏輯中的自動軟件加速、自動系統(tǒng)連接 生成,以及可加快編程速度的多種庫。該環(huán)境還為 客戶和第三方平臺開發(fā)人員提供開發(fā)流程,以使平 臺能夠在 SDSoC 開發(fā)環(huán)境中使用。

          圖 3 – SDSoC 開發(fā)環(huán)境提供熟悉的嵌入式 C/C++ 應(yīng)用開發(fā)體驗,包括簡單易用的 Eclipse IDE和綜合而全面的設(shè)計環(huán)境,以實現(xiàn)異構(gòu) Zynq All Programmable SoC 和 MPSoC 部署。



          更多關(guān)于讓您能夠?qū)⒋a性能最大化的文章,請點擊“軟件開發(fā)及嵌入式系統(tǒng)開發(fā)人員必備



          關(guān)鍵詞: xilinx zynq poencl SDAccelTM

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();