色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

賽靈思的 SDAccel 開發環境為 FPGA 提供軟件應用設計流程

Xilinx賽靈思官微 ? 來源:djl ? 作者:賽靈思Jayashree Ra ? 2019-06-28 06:07 ? 次閱讀

賽靈思 FPGA 器件主要由可編程邏輯架構組成,能讓應用設計人員利用空間和時間并行性,最大化算法性能或大型應用中關鍵內核的性能。位于這種架構核心的是由基于查找表的邏輯元、分布式存儲器單元和乘法-累加單元構成的陣列。設計人員可以用不同方式組合這些元件,把邏輯實現在算法中,同時滿足功耗、吞吐量和時延方面的設計目標要求。把 FPGA 架構元件組合為邏輯功能一直是硬件工程人員的工作范疇,這個過程更類似于匯編層面的編碼,與現代軟件設計實務相去甚遠。雖然常用軟件設計流程早已脫離匯編編碼的層面,但由于 CPU 編譯和 FPGA 編譯之間內在的差異,FPGA 設計實踐的發展步伐要緩慢一些。

在 CPU 和 GPU 領域,硬件是固定的,所有的程序均根據靜態指令集架構 (ISA) 編譯。雖然 CPU 和 GPU 之間的 ISA 不同,但基本的底層編譯方法是相同的。這種相似性促使設計實踐從手動匯編編碼向使用 OpenCL C、C 和 C++ 等軟件開發常用的編程語言進行編譯、調試和優化的設計流程發展演化。

在 FPGA 設計方面,設計人員能夠為運行特定工作負載開發自己的處理架構。FPGA 的一大重要優勢就是能夠根據特定系統需求定制架構,但這不利于 FPGA 應用開發中采用軟件開發實踐方法。

六年前賽靈思開始積極的研發工作,通過開發一種把直觀的軟件開發設計循環引入 FPGA 的開發環境,來打破這一障礙。面向 OpenCL C、C 和 C++ 的賽靈思 SDAccel 能夠讓 FPGA 器件的應用編譯、調試與優化方式類似于 CPU 和 GPU 的流程,而且在用于數據中心應用加速時,可將性能功耗比提升高達 25 倍。

軟件設計人員可以使用 SDAccel 開發環境開發和加速眾多功能與應用。下面介紹如何使用 SDAccel 環境實現中值濾波器應用的編譯、調試與優化設計循環。

中值濾波器

中值濾波器是一種常在圖像處理中用于降噪目的的空間函數(圖 1)。中值濾波器使用的算法用圍繞中心像素的 3x3 像素窗口,根據所有相鄰像素的中值計算中心像素值。這一計算公式為:

outputPixel[i][j] =

median (

inputPixel[i-1][j-1],

inputPix- el[i-1][j],

inputPixel[i-1][j+1],

inputPixel[i][j-1],

inputPixel[i] [j],

inputPixel[i][j+1],

inputPixel[i+1][j-1],

inputPixel[i+1][j],

inputPixel[i+1][j+1]

) ;

賽靈思的 SDAccel 開發環境為 FPGA 提供軟件應用設計流程



編譯

運用 OpenCL C 等語言編寫中值濾波器函數后,就進入開發的第一個階段——編譯。在 CPU 或 GPU 上,編譯是軟件設計流程中的一個必要的也是必然的步驟。目標 ISA 是固定而公開的,編程人員只需關心可用的處理內核數量和算法的高速緩存缺失情況。FPGA 編譯更像一個開放問題:在編譯時目標 ISA 并不存在,邏輯資源還有待組合成處理架構,系統存儲器架構也尚未定義。

SDAccel 開發環境中的編譯器提供三項功能,可幫助編程人員應對如下這些挑戰:自動在循環內的語句間和跨循環迭代提取并行性、根據對陣列的讀寫模式自動調用存儲器架構、以及對給定 FPGA 器件內部基本邏輯元的類型和數量的架構感知能力。這三項功能對中值濾波器的源代碼的重要性見圖示(圖 2)。

賽靈思的 SDAccel 開發環境為 FPGA 提供軟件應用設計流程

中值濾波器的運算可以表達為由一系列由兩個部分組成的嵌套循環。第一個部分負責從名為“輸入”的外部存儲器中陣列取出數據,然后把值存儲在本地陣列“RGB”中。算法第二個部分是一個圍繞 getMedian 函數的“for”循環。getMedian 就是計算發生的位置。

通過分析圖 2 中的代碼,SDAcell 環境認為 RGB 陣列上不存在循環-承載數據依賴關系。每次循環迭代都有一個專有 RGB 副本,這個副本可以存儲在不同物理資源上。從這個代碼看出的 SDAccel 環境的另一大特點是對 getMedian 函數調用的獨立性。

圖 2 所示的算法版本在帶有固定邊界的“for”循環內部執行 getMedian 函數。根據濾波器的性能目標和所選的 FPGA,SDAccel 環境可以跨所有三個通道重復利用計算資源,或是分配更多邏輯,實現空間并行性,同時運行所有通道。這項決定相應地會影響如何為陣列 RGB 實現存儲器存儲。

從應用編程人員的角度出發,上述步驟是透明的,可視為 GNU 編譯器套件 (GCC) 中的–O1 到 –O3 優化。

SDAccel 環境中的 printf 設計無需耗用額外邏輯資源即可提供此項功能。



調試

軟件開發的一條公理就是應用編譯不等同于應用正確。只有在應用在目標硬件上開始運行之后,編程人員才能開始發現、追蹤和糾正應用中的錯誤,換句話說進行調試。

CPU 應用的調試是一個容易理解的問題,商業廠商和開源社區提供有大量工具來解決這個問題。FPGA 再度成為另類。應用編程人員如何才能調試好創建用于實現一段代碼的功能的軟件,使之實現既定性能目標呢?

SDAccel 開發環境借鑒了 CPU 環境的兩個概念——printf 和 GDB 調試——來解決這個問題。

printf 功能是軟件編程人員工具箱中的基本工具。每一種編程語言都會提供 printf 功能,用于顯示程序執行過程中主要應用變量的狀態。對 CPU 器件而言,這就同監測寄存器狀態一樣簡單。printf 功能不占用硬件資源。

就 FPGA 的情況來說,實現 printf 可能會消耗本可用于實現邏輯功能的邏輯資源。在 SDAccel 環境中實現 printf 無需消耗額外的邏輯資源即可提供此項功能。該環境是通過將 printf 數據生成獨立于解碼和用戶表示層來實現的。就硬件資源而言,為 printf 生成數據會占用幾個寄存器,在寄存器豐富的 FPGA 架構中這完全可以忽略不計。數據解碼在針對 FPGA 的驅動程序中完成。通過讓主機 CPU 執行 printf 的數據解碼和表示層,軟件編程人員可以在基本不占用 FPGA 資源的情況下使用 printf。

從 CPU 借鑒的第二個調試技巧是使用 GNU 項目調試器 (GDB) 等工具,在代碼中各處插入斷點和單步執行。編程人員可以使用 SDAccel 環境的仿真模式,將 GDB 連接到正在運行的仿真流程。該仿真流程是對開發人員準備在 FPGA 器件上執行的專用硬件的仿真。在仿真流程環境下,GDB 能夠觀察各種變量的狀態,在代碼各處插入斷點和單步執行。從應用編程人員的角度,這與 GDB 在 CPU 上工作的方式完全相同。



優化

完成編譯和調試后,軟件開發周期的下一步是優化應用。在 FPGA 上進行應用優化的原理與在 CPU 上優化應用一致。唯一差別在于方法不同。對 CPU 來說,需要細調應用代碼,使之適應處理器的高速緩存和算術單元的邊界。在 FPGA 中,計算邏輯是為當前應用定制匯編的。因此決定優化約束的是 FPGA 的大小和應用的目標性能。

使用 SDAccel 的軟件編程人員可以借助邏輯架構的靈活性,不必了解有關硬件設計的細節,即可構建高性能、低功耗應用。

SDAccel 環境的編譯器能自動優化計算邏輯。編程人員可通過對從代碼調用的數據傳輸模式的分析來協助自動優化工作。圖 3 所示的是輸入和輸出過程中發生的中值濾波器代碼與存儲器之間的讀寫事務處理。

圖中的每條垂直線代表一個到存儲器的事務處理。綠條所示的是中值濾波器函數的活動時間。從圖中可以看出,雖然中值濾波器一直處于活動狀態,存儲器事務處理之間存在明顯的間隔。這些間隔代表的是中值濾波器從一個事務處理切換到下一個事務處理所使用的時間。由于每項對存儲器的事務處理只訪問一個值,事務處理之間的間隔說明該應用存在嚴重的性能瓶頸。

賽靈思的 SDAccel 開發環境為 FPGA 提供軟件應用設計流程

解決該性能問題的途徑之一是在應用代碼中明示地聲明從外部存儲器到本地存儲器的突發事務處理。圖 4 所示的代碼片段使用了 OpenCL C 語言內核采用的 async_work_group_copy 函數。這項功能的目的是通知編譯器每項對存儲器的事務處理都是一個包含多重值的突發事件。這樣能夠更高效率地利用目標器件上的可用存儲器帶寬,并減少對存儲器的事務處理總數。在圖 4 的代碼中,async_work_group_copy 函數把 DDR 存儲器中輸入圖像的全部行內容提交給內核數據路徑內的存儲器。圖 5 中的存儲器事務處理跡線體現了使用 async_work_group_copy 的結果。如圖 5 所示,在存儲器事務處理發生之前內核有一個建立時間,但這并沒有體現在中值濾波器的原始代碼中(圖 2)。

賽靈思的 SDAccel 開發環境為 FPGA 提供軟件應用設計流程

這部分建立時間差異用于處理從代碼中衍生出的邏輯。在圖 2 的原始代碼中,應用立即啟動對存儲器的單次事務處理,然后等待數據可用。與此相反,圖 4 中的優化代碼能判斷是否需要進行存儲器事務處理或是否內核的本地存儲器中的數據已經可用。它還能讓生成的邏輯背對背地調度存儲器事務處理和覆蓋讀寫事務處理。

不管最終器件是 CPU 還是 FPGA,特性分析都是應用開發過程中的主要組成部分。SDAccel 環境的可視化和分析器功能能讓應用編程人員從內核占用、存儲器事務處理和存儲器帶寬利用率等方面對代碼修改和應用要求進行特征描述。

由編譯、調試和優化操作建立的設計環路是軟件開發流程的基礎。SDAccel 開發環境使用類似于 CPU 開發環境的工具和技巧來實現這一設計環路,同時基于 FPGA 的應用加速可將性能功耗比提升 25 倍,時延則縮短 50 至 75 倍。使用 SDAccel,軟件編程人員無需了解有關硬件設計的所有細節,就能夠充分發揮 FPGA 邏輯架構的靈活性,從而開發出高性能、低功耗應用。

賽靈思的 SDAccel 開發環境為 FPGA 提供軟件應用設計流程

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603039
  • 可編程邏輯
    +關注

    關注

    7

    文章

    515

    瀏覽量

    44083
收藏 人收藏

    評論

    相關推薦

    玩轉FPGA,FPGA設計大賽開賽啦

    經歷過和牛人一起進行FPGA設計比賽的激烈競爭嗎?你感受過FPGA原廠開發板和fpga行業泰斗直接帶來的強烈震撼嗎? 沒經歷過沒關系,電子發燒友網主辦,
    發表于 04-23 09:31

    提交FPGA設計方案,贏取FPGA開發

    “玩轉FPGA:iPad2,開發板等你拿”活動持續火爆進行中……………………活動得到了廣大電子工程師積極強烈的支持,為了回報電子工程師
    發表于 07-06 17:24

    開發環境ISE軟件下載地址

    剛開始學FPGA,求他的ISE軟件下載地址,我在網上沒搜到。謝謝了
    發表于 08-02 09:52

    玩轉FPGA (xilinx)FPGA設計大賽獲獎名單!!!

    專家進行探討交流的機會,提高對技術知識的應用和產品商業化的認知;廣大電子愛好者深入了解產品的機會,利用
    發表于 09-06 11:54

    :“玩轉FPGA (xilinx)FPGA設計大賽”獲獎獎品展示

    板及小禮品展示#e#  接下來大家展示的是(xilinx)公司大家提供的獎品,分別是:
    發表于 09-06 14:33

    FPGA是用altera多還是的多呢

    FPGA是用altera多還是的多呢,我買的開發板是altera的,但是很多人推薦說學習
    發表于 01-09 21:27

    ISE? 設計套件11.1版對FPGA有什么優化作用?

    每一版本都提供了完整的FPGA設計流程,并且專門針對特定的用戶群體(工程師)和特定領域的設計方法及設計環境要求進行了優化。那大家知道
    發表于 07-30 06:52

    什么是豐富目標設計平臺?

    今年年初,率先在FPGA領域提出目標設計平臺概念,旨在通過選用開放的標準、通用的開發流程
    發表于 08-13 07:27

    FPGA終端芯片研發提供有利的工具

    TD技術論壇秘書長時光:FPGA技術終端芯片的研發提供了非常有利的工具,這是時光在在
    發表于 12-23 15:20 ?839次閱讀

    Xilinx與IBM通過SuperVesselOpenPOWER開發云平臺實現FPGA加速

    提供支持。SDAccel允許開發人員用 OpenCL?、C和C++語言描述他們的算法,并直接編譯到
    發表于 02-08 16:06 ?343次閱讀

    Xilinx SDAccel 開發環境榮獲 2015 EE Times 和 EDN ACE 大獎

    公司(Xilinx, Inc. (NASDAQ:XLNX))宣布其 SDAccel 開發環境在最終產品評比中(
    發表于 02-09 02:31 ?326次閱讀

    FPGA設計流程看懂FPGA設計

    不斷 從FPGA設計流程看懂FPGA設計 1.XILINX ISE傳統
    發表于 02-20 20:32 ?1.6w次閱讀
    從<b class='flag-5'>賽</b><b class='flag-5'>靈</b><b class='flag-5'>思</b><b class='flag-5'>FPGA</b>設計<b class='flag-5'>流程</b>看懂<b class='flag-5'>FPGA</b>設計

    針對OpenCL、C和 C++的SDAccel開發環境可利用FPGA實現數據中心應用加速

    公司(Xilinx)推出針對 OpenCL、C 和 C++的S DAccel 開發環境,將單位功耗性能提高達25倍,從而利用
    發表于 08-30 17:00 ?1197次閱讀

    公司宣布其軟件定義開發環境SDAccel已上線亞馬遜AWS

    隨著面向 Amazon EC2 F1 實例的 SDAccel 開發環境的部署,讓不太熟悉 FPGA軟件開發人員現在也能夠將工作負載的性能
    的頭像 發表于 07-29 11:49 ?2118次閱讀

    Nimbix宣布采用SDAccel開發環境

    該新型解決方案將大幅降低高性能高能效 FPGA 的使用門檻,有助于加速各產業的高端計算工作流程開發人員現在能在云端運行這些工具,然后在最新
    的頭像 發表于 07-29 17:47 ?2194次閱讀
    主站蜘蛛池模板: 叮当成人社区| 色婷婷激婷婷深爱五月小蛇| 国产成人免费观看| 99精品免费久久久久久久久蜜桃| 一抽一出BGM免费50分动漫| 亚洲国产精品嫩草影院| 手机国产视频福利| 色欲久久精品AV无码| 日韩精品无码久久一区二区三 | 在线观看免费国产成人软件| 亚洲国产精品特色大片观看| 色网址在线观看| 色久久一个亚洲综合网| 农民工老头在出租屋嫖老熟女| 老师扒开尿口男生摸尿口| 玖玖爱这里只有精品视频| 老色哥网站| 美女扒开腿让男人桶个爽| 毛片网站在线观看| 蜜桃成熟时33D在线嘟嘟网| 欧美 国产 日产 韩国 在线| 欧美高清videossexo| 日本无码色哟哟婷婷最新网站| 日韩免费视频一区| 无码射肉在线播放视频| 亚洲精品动漫免费二区| 伊人久久大香线蕉无码麻豆| 一二三四免费中文在线1| 91精品婷婷国产综合久久8| sao虎影院桃红视频在线观看| 超碰最新网站| 国产免费福利在线视频| 娇女的呻吟亲女禁忌h16| 久久伊人电影| 欧美色图14p| 午夜伦理在线观看| 亚洲卫视论坛| 99在线观看免费| 国产精品久久久久成人免费| 黑人干亚洲人| 免费A级毛片无码无遮挡内射|