衡阳派盒市场营销有限公司

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

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

3天內不再提示

將OpenCL編譯到FPGA

李建設 ? 來源:云漢007 ? 作者:云漢007 ? 2022-08-29 08:07 ? 次閱讀

異構計算是指不斷增長的一類系統,其中應用程序在不同的處理器和加速器設備的混合上執行以最大化吞吐量。在這種系統上執行程序需要一種編程范式,該范式向應用程序開發人員提供一致的系統視圖。OpenCL 框架是為解決異構計算系統的需求和挑戰而創建的行業標準。

在最基本的層面上,OpenCL 框架為應用程序程序員提供了與設備供應商無關的平臺定義和跨所有實現該標準的設備的單一內存模型。這些特性使 OpenCL 程序員能夠專注于正在開發的應用程序的核心挑戰,而不是特定計算設備的特定細節。

OpenCL 框架的第一個組件是平臺,它定義了可用于執行程序的資源。在一個 OpenCL 平臺中,總是有一個主機處理器和至少一個加速設備。主機處理器負責將作業分派給加速器以及啟動主機/加速器內存傳輸。此主機始終使用 CPU 實現,加速器可以是 CPU、GPUFPGA。這些加速設備的控制是通過一組通用的 API 函數來實現的,這些 API 函數是 OpenCL 標準的一部分。

加速設備上的作業采用內核執行的形式。內核是運行在加速設備上的應用程序的計算功能。OpenCL 中的一個應用程序可能有一個或多個內核,每個內核的特點是表達一個數據并行操作。例如,圖 1 顯示了將在 CPU 上執行的程序轉換為適合 OpenCL 的數據和任務并行表示。

poYBAGL0iA-AJB-WAACxDyvwwLI066.jpg

圖 1:從順序到 sata 和任務并行應用程序

在圖 1 中代碼的順序版本中,函數 f、g 和 h 在“for”循環內執行。每個函數將數據集 X 和 Y 作為輸入源并產生一個輸出 T,它不會被“for”循環內的任何其他函數消耗。因此,代碼的順序版本中的循環可以分配給函數 f、g 和 h,以創建應用程序的任務并行表示,如圖 1 的中心列所示。如果函數 f、g 和 h 的每次調用獨立于上一個和下一個調用,則應用程序是任務和數據并行的,如圖 1 的右側列所示。函數 f、g 或 h 的每次調用代表加速設備執行的一個工作項。根據可用的計算資源,

除了為應用程序員提供與設備無關的數據并行編程模型外,OpenCL 還提供了統一的內存模型層次結構,如圖 2 所示。

pYYBAGL0iBKAIurRAAC-Mg_PPqc376.jpg

圖 2:OpenCL 內存模型

在模型的應用層,內存空間分為主機內存和設備內存。與設備相關的內存進一步分為三個層次結構,包括全局內存、本地內存和私有內存。全局內存由連接到設備的內存組件(如 SDRAM)創建。映射到全局內存的緩沖區的管理由主機代碼應用程序通過使用 OpenCL API 函數來處理。OpenCL API 函數用于確定緩沖區的大小以及對緩沖區的讀寫訪問。在 OpenCL 內存模型支持的所有內存類型中,請務必記住,全局內存是容量最大、延遲最長的內存,

OpenCL 和 FPGA

FPGA 可以在制造后針對不同的算法進行編程,如圖 3 所示,具有執行邏輯操作的查找表 (LUT)、存儲 LUT 結果的觸發器 (FF) 以及元件之間的連接和 I/O 焊盤,用于將數據輸入和輸出 IC。當代 FPGA 架構包含額外的計算 (DSP)、數據存儲 (BRAM)、高速串行收發器和片外存儲器控制器塊。這些元素的組合為 FPGA 提供了為給定軟件工作負載實現自定義邏輯的靈活性。

poYBAGL0iBSAbTnrAADG3oMSFa0783.jpg

圖 3:FPGA 的基本結構

在 OpenCL 的上下文中,由于內核代碼的數據并行特性,FPGA 架構非常適合這種工作負載。與其他能夠執行 OpenCL 內核的設備不同,FPGA 架構可以使用針對特定內核完全優化的內核進行定制,從而允許內核執行的并行性隨 FPGA 設備的大小而擴展。

在加速器計算單元上執行的 OpenCL 應用程序內核。計算單元是指執行內核功能中的操作的處理器內核或加速器邏輯。

SHA-1 算法

SHA-1 算法是最常用的加密哈希函數之一。使用這些功能確保和檢查數據完整性的能力已經成為在線簽名和作為電子商務解決方案核心的安全套接字層 (SSL) 的基礎。該函數非常適合 FPGA,因為它是通過 80 輪處理對 512 位數據集的與、異或、旋轉、加法或移位操作組成的。每輪計算中使用的 512 位數據負載可以并行或塊方式計算。

poYBAGL0iBeAfqgZAAC5wk9Cv6Q576.jpg

圖 4:用于 SHA-1 的 FPGA 計算單元

SHA-1 功能的 FPGA 實現如圖 4 所示。在此設計中,關鍵元素是創建自定義計算單元,以包含計算單個 SHA-1 所需的 80 輪處理。通過將所有 80 輪處理分組到同一個處理邏輯中,應用程序設計人員可以最大限度地減少與標準 CPU 實現所需的高速緩存或內存元素的交互。這反過來又增加了此功能的吞吐量并降低了維持所達到的吞吐量所需的功耗。下表總結了 FPGA 實現與 CPU 實現的優勢:

pYYBAGL0iBqAdvi-AACSthKU7vw990.jpg

對于此比較,英特爾 Haswell CPU 有 12 個內核,能夠執行任何 OpenCL 內核代碼,但未針對任何特定工作負載進行優化。相比之下,FPGA 實現有 16 個內核優化為僅執行 SHA1 工作負載。加速器計算單元定制級別的差異直接轉化為該工作負載的兩個設備之間的性能差異。

Xilinx FPGA 結果是通過使用適用于 OpenCL、C 和 C++ 的 SDAccel 開發環境編譯 SHA1 算法并在 Xilinx Virtex 7 器件上運行生成的二進制程序生成的。SDAccel 利用 FPGA 為數據中心應用程序加速提供高達 25 倍的性能功耗比,并結合了業界第一個支持 OpenCL、C 和 C++ 內核的任意組合的架構優化編譯器,以及庫、開發板和第一個完整的 CPU/GPU類似 FPGA 的開發和運行時經驗。

審核編輯:湯梓紅

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

    關注

    1630

    文章

    21796

    瀏覽量

    605987
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10902

    瀏覽量

    212997
  • OpenCL
    +關注

    關注

    2

    文章

    48

    瀏覽量

    33381
收藏 人收藏

    評論

    相關推薦

    Altera發布面向FPGAOpenCL解決方案 簡化FPGA開發

    Altera公司近日發布其面向FPGAOpenCL (開放計算語言)早期使用計劃(EAP),支持客戶提前了解Altera面向FPGAOpenCL解決方案。采用這一開放標準,設計團隊
    發表于 09-04 08:47 ?863次閱讀

    充分發揮FPGA優勢 Altera首推新穎OpenCL工具

    Altera宣布業界首款支持FPGAOpenCL工具,進一步加速了FPGA在異構系統中的應用;OpenCL軟件開發套件支持開發人員充分發揮FPGA
    發表于 11-06 14:26 ?1554次閱讀

    基于OpenCL標準的FPGA設計

    FPGA上使用OpenCL標準,與目前的硬件體系結構(CPU、GPU,等)相比,能夠大幅度提高性能,同時降低了功耗。此外,與使用Verilog或者VHDL等底層硬件描述語言(HDL)的傳統FPGA
    發表于 05-26 09:10 ?4275次閱讀

    Intel altera opencl 入門

    今天給大俠帶來Intel altera opencl 入門,話不多說,上貨。 概述 Intel altera 的 OpenCL 主要面向信號處理類應用的客戶,是用C語言開發FPGA的利器
    發表于 06-04 18:25

    Altera OpenCL

    各位大牛晚上好,是這樣的,小弟目前在做一個Altera OpenCL的工作,具體是OpenCL的kernel通過Altera提供的工具轉換成aocx和Quartus工程,然后下載到FPGA
    發表于 03-11 20:32

    FPGA編譯openCL內核文件出錯

    ` 用openCL寫了個機器學習算法,用a10gx的板子的BSP編譯運行沒問題,但是a10gx板子太貴了。 于是準備買DE10-Standard 來做研究,下了BSP在bashrc里改了文件后,編譯
    發表于 04-18 17:30

    什么是OpenCL?面向FPGAOpenCL有什么優點?

      很多工程師朋友對OpenCL以及面向FPGAOpenCL很感興趣,也有很多相關問題提出。這里發一篇小小的技術普及文章,以供大家參考學習,歡迎參考...  
    發表于 09-17 08:26

    Altera發布業界第一個面向FPGAOpenCL計劃

    Altera公司(NASDAQ: ALTR)今天發布FPGA和SoC FPGA的開放計算語言(OpenCL?)標準開發計劃。OpenCL標準是基于C語言的開放標準,適用于并行編程。Al
    發表于 11-16 16:12 ?760次閱讀

    面向Altera FPGAOpenCL:提高性能和設計效能

    開放計算語言(OpenCL)編程模型與Altera的并行FPGA體系結構相結合,實現了功能強大的系統加速解決方案。面向OpenCL的Altera SDK為您提供了設計環境,工程師很容易在FPG
    發表于 11-06 14:56 ?1276次閱讀

    用于OpenCL的英特爾FPGA SDK資料

    用于OpenCL的英特爾FPGA SDK
    發表于 03-22 15:02 ?8次下載

    C/C++/OpenCL 應用編譯的SDSoC開發

    應用大比拼開擂 基于vivado HLS的幀差圖像實現 基于FPGA的實時移動目標的追蹤 類似嵌入式 C/C++/OpenCL 應用開發的體驗 SDSoC 開發環境可為異構 Zynq SoC 及 MPSoC 部署
    發表于 05-21 14:16 ?2246次閱讀

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

    系列的最新成員,業界首款支持 OpenCL、C 和 C++ 內核任意組合的架構優化編譯器、庫、開發板完美結合在一起,在 FPGA 上首次實現了完全類似 CPU/GPU 的開發和運行時
    發表于 08-30 17:00 ?1230次閱讀

    如何使用OpenCL輕松實現FPGA應用編程

    應用能夠有更高的性能,您需要熟悉如下介紹的硬件。另外,將會介紹編譯優化選項,有助于您的 OpenCL 應用更好的實現 RTL 的轉換和映射,并部署
    發表于 07-16 17:58 ?6646次閱讀
    如何使用<b class='flag-5'>OpenCL</b>輕松實現<b class='flag-5'>FPGA</b>應用編程

    Intel Cyclone V 開發板OpenCL使用手冊免費下載

    開發環境,以及如何編譯和執行C5P的示例項目。請注意,OpenCL編碼指令不在本文檔的范圍內,但用戶可以參考Intel FPGA SDK for OpenCL Programming
    發表于 09-01 08:00 ?7次下載
    Intel Cyclone V 開發板<b class='flag-5'>OpenCL</b>使用手冊免費下載

    使用OpenCL for FPGA設計200萬點頻域濾波器

      本文介紹如何使用 Altera OpenCL SDK for FPGA 設計 200 萬點頻域濾波器。所有功能驗證均使用軟件樣式的仿真完成,并且每個硬件編譯都能正常工作。我們沒有打開硬件模擬器,也從不擔心時序收斂。
    的頭像 發表于 06-09 16:21 ?1518次閱讀
    使用<b class='flag-5'>OpenCL</b> for <b class='flag-5'>FPGA</b>設計200萬點頻域濾波器
    百家乐官网游戏免费试| 百家乐官网赢输| 里尼的百家乐官网策略| 麻将百家乐官网筹码| 励骏会百家乐官网的玩法技巧和规则| 百家乐下注平台| 百家乐赌博代理| 百家乐路子分| 顶级赌场是真的吗| 百家乐真人视频出售| 本溪棋牌娱乐网| 皇家国际娱乐| 网络百家乐官网可靠吗| 澳门百家乐官网娱乐城注册 | 24鸡是什么命| 百家乐开户送彩网址| 百家乐平台凯发| 大发888博彩官方下载| 百家乐官网有没有攻略| 玩百家乐官网的玩法技巧和规则| 百家乐视频网络游戏| 宝马会百家乐的玩法技巧和规则| 试玩百家乐的玩法技巧和规则| 娱乐城注册送18体验金| 网上百家乐官网心得| 功夫百家乐官网的玩法技巧和规则 | 真人百家乐宣传| 威尼斯人娱乐场有什么玩| 大发888娱乐城官网下载真钱| 吉安县| 乐九百家乐官网娱乐城| 缅甸百家乐官网赌场| 百家乐打水套利| 一起pk棋牌游戏大厅| 百家乐官网兑换棋牌| 属狗与属猪能做生意吗| 百家乐里靴是什么意识| 汇丰娱乐城| 尊龙百家乐官网娱乐网| 潘多拉百家乐的玩法技巧和规则| 金宝博滚球|