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

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

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

3天內不再提示

OpenCL編程語言可以幫助我們使用GPU或者多核處理器的并行能力

SSDFans ? 來源:lp ? 2019-04-19 17:31 ? 次閱讀

一、并行處理

所謂并行處理就是同時處理多個計算程序,應用程序處理器典型的設計是使用單線程盡可能快的去執行應用程序,這種類型的處理器通常包含標量操作單元和程序控制器。GPU是被設計用來同時執行大量線程的處理器,GPU處理器的典型設計是使用多處理器并行的處理多個任務。

OpenCL編程語言可以幫助我們使用GPU或者多核處理器的并行能力。OpenCL是一種開放標準的變成語言,它能夠使開發者在GPU或者其他類型的多核處理器上運行通用計算任務。

二、并行類型

1.數據并行

數據并行,任務并行和流水線(pipelines)并行是主要的并行類型。

數據并行是將數據劃分為不同的數據元素或者數據塊,使得處理器可以并行的處理不同的數據元素。多個處理器可以同時的讀寫和處理不同的數據。因此數據并行要求數據的數據結構可以滿足多個處理器同時讀寫的要求。GPU進行通用計算,最典型的應用便是數據并行。通過OpenCL等編程語言可以很輕松的實現不同的線程以相同的方式處理不同的數據。如下圖所示:可以使用9個線程,同時完成9組數據的相加。

2.任務并行

任務并行,是指一個任務被分解為多個小任務,由多個處理器同時處理。任務并行的一個簡單例子便是在網頁上播放一段視頻,為了能夠在網頁上播放視頻,我們的設備需要做如下幾個任務:

運行一個執行通信網絡堆棧

從外部服務器請求數據

分析數據

解碼視頻數據

解碼音頻數據

渲染視頻幀數據

播放音頻數據

下圖顯示了播放在線視頻的時候應用程序同時操作的系統;

3.流水線并行

流水線是通過多個不同的計算階段處理數據,在流水線上多個階段可以同時操作,但是他們操作的是不同的數據。流水線通常擁有相當少的階段。下面是一個關于流水線的例子,一個錄像程序必須執行的幾個階段:

圖像傳感器捕捉圖像數據,并且計算亮度級別

根據鏡頭效果修正圖像數據

修正圖像數據的對比度,色彩平衡和曝光

壓縮圖像數據

將圖像數據添加到視頻文件

將視頻數據寫入存儲器

這些階段必須按照順序執行,但是他們可以同時在視頻中的不同幀上執行。

我們將6個處理階段,對應6中顏色,分別表示6個處理單元:

按照串行的處理方式,處理一幀圖像需要串行的經過6個處理單元,假設需要300us的延遲,每一個處理單元消耗50us。這是一種組合邏輯的實現過程,我們只需要每300us輸入一幀圖像即可,不需要在處理單元內部做同步。

如果使用流水線技術,那么處理流程將完全不同,流水線技術是一種指令疊加技術,能夠增加系統的吞吐量,但是同時會帶來每一幀數據的處理延遲會增加。具體處理流程如下圖所示:

圖中給出了A、B、C三幀數據的處理流程;當A進入第二階段的時候,B便可以進入第一階段,當B進入第二階段的時候,C便可以進入第一階段,以此類推;但是需要注意的是,我們需要在每一個階段的結束位置添加寄存器,用于數據同步。假設寄存器延遲為20us(請忽略單位,寄存器延遲不會達到us級別,為了計算方便這里做了不合實際的假設)。那么處理3幀數據,需要消耗的時間為:

8×(50 + 20) = 560 us;

而串行處理方式需要消耗300 × 3 = 900 us;但是不使用流水線獲取每一幀數據輸入到輸出的延遲為300us,而加入流水線技術后,獲取數據的延遲為420us。

不使用流水線時,系統的吞吐量為:1/300;使用流水線后,系統的吞吐量為:3/420= 1/140;可以看到系統的吞吐量增加了2.14倍(注:吞吐量的計算忽略單位,倍數的計算是準確的)。所以通過使用流水線技術可以顯著增加系統的吞吐量,但是會增加系統的延遲。

但是流水線在使用過程中也存在弊端,以上的任務劃分是均分的,但是在實際使用中,由于任務劃分的不均勻,會造成流水線產生不同的延遲,不合理的階段劃分,很容易導致流水線阻塞,造成性能降低。

三.混合使用不同的并行方式及其并行加速限制

在具體的應用中可以綜合使用不同的并行方式,例如在一個音頻分析的應用中,就可以同時使用以上三種并行方式。

可以使用任務并行來獨立的計算音符

使用音頻生成流水線和處理模塊來創造獨特的音符

在流水線內部,一些處理階段可以使用數據并行來加速計

但同時并行加速也有他的限制,假設你的應用程序能夠完全并行化,那么使用10個處理器來執行,可以將程序性能提升10倍,但是很少有應用程序可以完全并行化,程序中很大可能會存在串行部分,而串行部分則會限制程序的并行化數量。

Amdahl定律描述了并行程序可以實現的最大加速,Amdahl定律的公式如下:

Speedup = 1/(s + p / n);其中,s表示應用程序中串行的部分,p表示應用程序中并行的部分,n表述處理器的數量。

下圖展示了不同數量的處理器對串行比例不同的應用程序所能提供的加速比率變化曲線:

在后續的文章中會更加細致的介紹如何使用OpenCL在移動端GPU上對應用程序進行并行化。

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

    關注

    68

    文章

    19259

    瀏覽量

    229653
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4729

    瀏覽量

    128890
  • 編程語言
    +關注

    關注

    10

    文章

    1942

    瀏覽量

    34707

原文標題:原來GPU這么簡單,一定要看!

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式多核處理器硬件結構分析與對排序算法進行并行化優化

    常常在嵌入式領域使用,常見的是通用嵌入式處理器+DSP核。本文探究的嵌入式多核處理器采用同構結構,實現同一段代碼在不同處理器上的并行執行。
    的頭像 發表于 10-17 07:55 ?3999次閱讀

    面向多核處理器的低級并行程序驗證

    指令的操作語義和所需要的安全策略,使得在該框架下可以驗證多核并行程序的部分正確性。關鍵詞 多核處理器,自旋鎖,程序驗證,匯編級,部分正確性A
    發表于 10-06 09:56

    每日一教labview視頻教程【1.10】labview多核并行運行編程

    隨著多核成為處理器的發展主流,對于并行編程(多線程編程)也成為了開發人員最大的難題,而LabVIEW憑借自身的
    發表于 01-10 13:48

    GPU

    ,也是一個統一的編程環境,便于軟件開發人員為高性能計算服務、桌面計算系統、手持設備編寫高效輕便的代碼,而且廣泛適用于多核處理器(CPU)、圖形
    發表于 01-16 08:59

    探討采用C6000系列多核DSP的并行計算(OpenCL、OpenMP)實現大規模電磁系統的暫態仿真及其控制系統

    的運算,實現物理時間和仿真時間的同步更新。第二是大規模,即整個系統在各部分各個時間尺度上都能覆蓋,而不是被簡化。在此要求下,必須對系統進行劃分,對每一個劃分出來的小型子系統采用多核處理器進行并行計算仿真
    發表于 12-03 20:42

    多核處理器的優點

    處理器。通過在兩個執行內核之間劃分任務,多核處理器可在特定的時鐘周期內執行更多任務。 多核技術能夠使服務
    發表于 06-20 06:47

    ARM Mali-T600系列GPU OpenCL開發人員指南

    。 GPU被設計為同時執行多個線程。 它們并行運行包含相對較少控制代碼的計算密集型數據處理任務。 GPU通常包含比應用程序處理器多得多的
    發表于 08-24 07:07

    基于FPGA的嵌入式多核處理器及SUSAN算法并行

    基于FPGA的嵌入式多核處理器及SUSAN算法并行
    發表于 08-30 18:11 ?24次下載

    多核處理器會取代FPGA嗎?

    有人認為諸如圖形處理器GPU)和Tilera處理器多核處理器在某些應用中正逐步替代現場可編程
    發表于 02-11 11:15 ?1036次閱讀
    <b class='flag-5'>多核</b><b class='flag-5'>處理器</b>會取代FPGA嗎?

    嵌入式ARM多核處理器并行化優化探究

    目前,嵌入式多核處理器已經在嵌入式設備領域得到廣泛運用,但嵌人式系統軟件開發技術還停留在傳統單核模式,并沒有充分發揮多核處理器的性能。程序并行
    發表于 10-16 10:01 ?1次下載
    嵌入式ARM<b class='flag-5'>多核</b><b class='flag-5'>處理器</b><b class='flag-5'>并行</b>化優化探究

    基于NI LabVIEW圖形化編程多核處理器和其他并行硬件進行編程

    NI LabVIEW圖形化編程方法不僅省時,還很適合對多核處理器和其他并行硬件[如:現場可編程門陣列(FPGA)]進行
    發表于 11-16 19:30 ?1572次閱讀
    基于NI LabVIEW圖形化<b class='flag-5'>編程</b>對<b class='flag-5'>多核</b><b class='flag-5'>處理器</b>和其他<b class='flag-5'>并行</b>硬件進行<b class='flag-5'>編程</b>

    基于圖形處理器GPU并行化解決方法

    目前目標識別領域,在人體檢測中精確度最高的算法就是可變形部件模型( DPM)算法,針對DPM算法計算量大的缺點,提出了一種基于圖形處理器GPU)的并行化解決方法。采用GPU
    發表于 12-28 11:16 ?1次下載

    Imagination宣布其BXS-4-64 GPU將用于德州儀器Jacinto處理器系列

    德州儀器處理器業務平臺工程總監Jim Kennedy說道:“在Imagination BXS GPU的支持下,我們推出了具有更高性能、更低帶寬和更強安全功能的差異化汽車處理器產品。IM
    的頭像 發表于 11-13 15:04 ?2419次閱讀

    開源的RISC-V處理器多核并行能力已超過x86

    開源RISC-V正朝著自己的方向越發越強大,它對其他架構的處理器也造成了不少的威脅。RISC-V不僅能實現5GHz的超高頻率,而且日前其多核并行能力也已經超過了x86。
    的頭像 發表于 12-10 09:21 ?2078次閱讀

    淺談多核系統編程技術

    因為NI LabVIEW是數據流編程語言,開發者們可以編寫并行的應用程序,這些應用程序可以直接映射到并行
    的頭像 發表于 10-27 17:08 ?440次閱讀
    主站蜘蛛池模板: 乡村教师电影版| 欧美激情一区二区三区AA片| 国产香蕉尹人视频在线| 国产精品 中文字幕 亚洲 欧美| 超碰97人人做人人爱亚洲尤物 | 免费看欧美xxx片| 美女伸开两腿让我爽| 欧美日韩北条麻妃一区二区| 皮皮色狼网| 无码欧美毛片一区二区三在线视频| 少妇高潮久久久久7777| 亚洲 日韩 自拍 视频一区| 亚洲欧美中文日韩视频| 2018久久视频在线视频观看| a一级毛片视频免费看| 国产成人免费| 久久6699精品国产人妻| 欧美一区二区影院| 香蕉 在线播放| 2020久久精品永久免费| 国产成人8x视频一区二区| 九九热精品在线观看| 人人射人人插| 亚洲精品中文字幕一二三四区 | 久草在在线免视频在线观看| 蜜桃色欲AV久久无码精品| 色柚视频网站ww色| 影音先锋av333资源网| 东北女人奶大毛多水多| 久久久91精品国产一区二区 | 考试考90就可以晚上和老师C| 日日噜噜大屁股熟妇| 97人妻中文字幕免费视频| 国产三级在线精品男人的天堂| 免费人成网站在线观看10分钟| 香蕉久久av一区二区三区| youjizz怎么看| 久久中文字幕人妻AV熟女| 鸭子玩富婆流白浆视频| hd性欧美俱乐部中文| 美女打开双腿扒开屁股男生|