青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Coder

HCP高性能計(jì)算架構(gòu),實(shí)現(xiàn),編譯器指令優(yōu)化,算法優(yōu)化, LLVM CLANG OpenCL CUDA OpenACC C++AMP OpenMP MPI

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  98 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

http://blog.csdn.net/zhang0311/article/details/8224093
近年來(lái),基于CPU+GPU的混合異構(gòu)計(jì)算系統(tǒng)開(kāi)始逐漸成為國(guó)內(nèi)外高性能計(jì)算領(lǐng)域的熱點(diǎn)研究方向。在實(shí)際應(yīng)用中,許多基于 CPU+GPU 的混合異構(gòu)計(jì)算機(jī)系統(tǒng)表現(xiàn)出了良好的性能。但是,由于各種歷史和現(xiàn)實(shí)原因的制約,異構(gòu)計(jì)算仍然面臨著諸多方面的問(wèn)題,其中最突出的問(wèn)題是程序開(kāi)發(fā)困難,尤其是擴(kuò)展到集群規(guī)模級(jí)別時(shí)這個(gè)問(wèn)題更為突出。主要表現(xiàn)在擴(kuò)展性、負(fù)載均衡、自適應(yīng)性、通信、內(nèi)存等方面。

一、    CPU+GPU協(xié)同計(jì)算模式

CPU+GPU異構(gòu)協(xié)同計(jì)算集群如圖1所示,CPU+GPU異構(gòu)集群可以劃分成三個(gè)并行層次:節(jié)點(diǎn)間并行、節(jié)點(diǎn)內(nèi)CPU與GPU異構(gòu)并行、設(shè)備(CPU或GPU)內(nèi)并行。根據(jù)這三個(gè)層次我們可以得到CPU+GPU異構(gòu)協(xié)同計(jì)算模式為:節(jié)點(diǎn)間分布式+節(jié)點(diǎn)內(nèi)異構(gòu)式+設(shè)備內(nèi)共享式。

1           節(jié)點(diǎn)間分布式

CPU+GPU異構(gòu)協(xié)同計(jì)算集群中,各個(gè)節(jié)點(diǎn)之間的連接與傳統(tǒng)CPU集群一樣,采用網(wǎng)絡(luò)連接,因此,節(jié)點(diǎn)間采用了分布式的計(jì)算方式,可以采用MPI消息通信的并行編程語(yǔ)言。

2           節(jié)點(diǎn)內(nèi)異構(gòu)式

CPU+GPU異構(gòu)協(xié)同計(jì)算集群中,每個(gè)節(jié)點(diǎn)上包含多核CPU和一塊或多塊GPU卡,節(jié)點(diǎn)內(nèi)采用了異構(gòu)的架構(gòu),采用主從式的編程模型,即每個(gè)GPU卡需要由CPU進(jìn)程/線程調(diào)用。

由于每個(gè)節(jié)點(diǎn)上,CPU核數(shù)也比較多,計(jì)算能力也很大,因此,在多數(shù)情況下,CPU也會(huì)參與部分并行計(jì)算,根據(jù)CPU是否參與并行計(jì)算,我們可以把CPU+GPU異構(gòu)協(xié)同計(jì)算劃分成兩種計(jì)算模式:

1)       CPU/GPU協(xié)同計(jì)算:CPU只負(fù)責(zé)復(fù)雜邏輯和事務(wù)處理等串行計(jì)算,GPU 進(jìn)行大規(guī)模并行計(jì)算;

2)       CPU+GPU共同計(jì)算:由一個(gè)CPU進(jìn)程/線程負(fù)責(zé)復(fù)雜邏輯和事務(wù)處理等串行計(jì)算,其它CPU進(jìn)程/線程負(fù)責(zé)小部分并行計(jì)算,GPU負(fù)責(zé)大部分并行計(jì)算。

由于CPU/GPU協(xié)同計(jì)算模式比CPU+GPU共同計(jì)算模式簡(jiǎn)單,下面的介紹中,我們以CPU+GPU共同計(jì)算模式為例進(jìn)行展開(kāi)介紹各種編程模式。

在CPU+GPU共同計(jì)算模式下,我們把所有的CPU統(tǒng)稱為一個(gè)設(shè)備(device),如雙路8核CPU共有16個(gè)核,我們把這16個(gè)核統(tǒng)稱成一個(gè)設(shè)備;每個(gè)GPU卡成為一個(gè)設(shè)備。根據(jù)這種劃分方式,我們可以采用MPI進(jìn)程或OpenMP線程控制節(jié)點(diǎn)內(nèi)的各設(shè)備之間的通信和數(shù)據(jù)劃分。

3           設(shè)備內(nèi)共享式

1)       CPU設(shè)備:每個(gè)節(jié)點(diǎn)內(nèi)的所有多核CPU采用了共享存儲(chǔ)模型,因此,把節(jié)點(diǎn)內(nèi)的所有多核CPU看作一個(gè)設(shè)備, 可以采用MPI進(jìn)程或OpenMP線程、pThread線程控制這些CPU核的并行計(jì)算。

2)       GPU設(shè)備:GPU設(shè)備內(nèi)有自己獨(dú)立的DRAM存儲(chǔ),GPU設(shè)備也是共享存儲(chǔ)模型,在GPU上采用CUDA或OpenCL編程控制GPU眾核的并行計(jì)算。CUDA編程模式只在NVIDIA GPU上支持,OpenCL編程模式在NVIDIA GPU和AMD GPU都支持。

根據(jù)前面對(duì)CPU+GPU異構(gòu)協(xié)同計(jì)算模式的描述,我們可以得到CPU+GPU異構(gòu)協(xié)同計(jì)算的編程模型(以MPI和OpenMP為例)如表1所示。


圖1 CPU+GPU異構(gòu)協(xié)同計(jì)算架構(gòu)

表1 CPU+GPU異構(gòu)協(xié)同計(jì)算編程模型

 

節(jié)點(diǎn)間分布式

節(jié)點(diǎn)內(nèi)異構(gòu)式

設(shè)備內(nèi)共享式

CPU

GPU

模式1

MPI

OpenMP

OpenMP

CUDA/OpenCL

模式2

MPI

MPI

OpenMP

CUDA/OpenCL

模式3

MPI

MPI

MPI

CUDA/OpenCL

二、    CPU+GPU協(xié)同計(jì)算負(fù)載均衡性設(shè)計(jì)

下面以模式2為例簡(jiǎn)單介紹多節(jié)點(diǎn)CPU+GPU協(xié)同計(jì)算任務(wù)劃分和負(fù)載均衡,模式2的進(jìn)程和線程與CPU核和GPU設(shè)備對(duì)應(yīng)關(guān)系如圖2所示。若采用主從式MPI通信機(jī)制,我們?cè)诠?jié)點(diǎn)0上多起一個(gè)進(jìn)程(0號(hào)進(jìn)程)作為主進(jìn)程,控制其它所有進(jìn)程。每個(gè)節(jié)點(diǎn)上啟動(dòng)3個(gè)計(jì)算進(jìn)程,其中兩個(gè)控制GPU設(shè)備,一個(gè)控制其余所有CPU核的并行,在GPU內(nèi)采用CUDA/OpenCL并行,在CPU設(shè)備內(nèi)采用OpenMP多線程并行。

由于CPU+GPU協(xié)同計(jì)算模式分為3個(gè)層次,那么負(fù)載均衡性也需要在這3個(gè)層次上分別設(shè)計(jì)。在模式2的編程方式下,節(jié)點(diǎn)內(nèi)和節(jié)點(diǎn)間均采用MPI進(jìn)程,合二為一,設(shè)計(jì)負(fù)載均衡時(shí),只需要做到進(jìn)程間(設(shè)備之間)的負(fù)載均衡和CPU設(shè)備內(nèi)OpenMP線程負(fù)載均衡、GPU設(shè)備內(nèi)CUDA線程負(fù)載均衡即可。

對(duì)于設(shè)備內(nèi),采用的是共享存儲(chǔ)器模型,CPU設(shè)備上的OpenMP線程可以采用schedule(static/ dynamic/ guided )方式;GPU設(shè)備上只要保證同一warp內(nèi)的線程負(fù)載均衡即可。

對(duì)于CPU+GPU協(xié)同計(jì)算,由于CPU和GPU計(jì)算能力相差很大,因此,在對(duì)任務(wù)和數(shù)據(jù)劃分時(shí)不能給CPU設(shè)備和GPU設(shè)備劃分相同的任務(wù)/數(shù)據(jù)量,這就增加了CPU與GPU設(shè)備間負(fù)載均衡的難度。CPU與GPU之間的負(fù)載均衡最好的方式是采用動(dòng)態(tài)負(fù)載均衡的方法,然而有些應(yīng)用無(wú)法用動(dòng)態(tài)劃分而只能采用靜態(tài)劃分的方式。下面我們分別介紹動(dòng)態(tài)劃分和靜態(tài)劃分。

1)       動(dòng)態(tài)劃分:對(duì)于一些高性能計(jì)算應(yīng)用程序,在CPU與GPU之間的負(fù)載均衡可以采用動(dòng)態(tài)負(fù)載均衡的優(yōu)化方法,例如有N個(gè)任務(wù)/數(shù)據(jù),一個(gè)節(jié)點(diǎn)內(nèi)有2個(gè)GPU卡,即三個(gè)設(shè)備(CPU和2個(gè)GPU),動(dòng)態(tài)負(fù)載均衡的方法是每個(gè)設(shè)備先獲取一個(gè)任務(wù)/數(shù)據(jù)進(jìn)行計(jì)算,計(jì)算之后立即獲取下一個(gè)任務(wù),不需要等待其他設(shè)備,直到N個(gè)任務(wù)/數(shù)據(jù)計(jì)算完成。這種方式只需要在集群上設(shè)定一個(gè)主進(jìn)程,負(fù)責(zé)給各個(gè)計(jì)算進(jìn)程分配任務(wù)/數(shù)據(jù)。

2)       靜態(tài)劃分:在一些應(yīng)用中,無(wú)法采用動(dòng)態(tài)劃分的方式,需要靜態(tài)劃分方法,然而靜態(tài)劃分方法使異構(gòu)設(shè)備間的負(fù)載均衡變得困難,有時(shí)甚至無(wú)法實(shí)現(xiàn)。對(duì)于一些迭代應(yīng)用程序,我們可以采用學(xué)習(xí)型的數(shù)據(jù)劃分方法,如先讓CPU和GPU分別做一次相同計(jì)算量的計(jì)算,然后通過(guò)各自的運(yùn)行時(shí)間計(jì)算出CPU與GPU的計(jì)算能力比例,然后再對(duì)數(shù)據(jù)進(jìn)行劃分。


圖2 CPU+GPU協(xié)同計(jì)算示意圖(以每個(gè)節(jié)點(diǎn)2個(gè)GPU為例)

三、    CPU+GPU協(xié)同計(jì)算數(shù)據(jù)劃分示例

假設(shè)某一應(yīng)用的數(shù)據(jù)特點(diǎn)如圖3所示,從輸出看,結(jié)果中的每個(gè)值的計(jì)算需要所有輸入數(shù)據(jù)的信息,所有輸出值的計(jì)算之間沒(méi)有任何數(shù)據(jù)依賴性,可以表示成outj=;從輸入看,每個(gè)輸入值對(duì)所有的輸出值都產(chǎn)生影響,所有輸入數(shù)據(jù)之間也沒(méi)有任何數(shù)據(jù)依賴性。從數(shù)據(jù)特點(diǎn)可以看出,該應(yīng)用既可以對(duì)輸入進(jìn)行并行數(shù)據(jù)劃分也可以對(duì)輸出進(jìn)行數(shù)據(jù)劃分。下面我們分析CPU+GPU協(xié)同計(jì)算時(shí)的數(shù)據(jù)劃分方式。


圖3 并行數(shù)據(jù)示例

1         按輸入數(shù)據(jù)劃分

假設(shè)按輸入數(shù)據(jù)劃分,我們可以采用動(dòng)態(tài)的方式給每個(gè)CPU或GPU設(shè)備分配數(shù)據(jù),做到動(dòng)態(tài)負(fù)載均衡,然而這種劃分方式,使所有的線程向同一個(gè)輸出位置保存結(jié)果,為了正確性,需要使所有的線程對(duì)每個(gè)結(jié)果進(jìn)行原子操作,這樣將會(huì)嚴(yán)重影響性能,極端情況下,所有線程還是按順序執(zhí)行的。因此,這種方式效果很差。

2         按輸出數(shù)據(jù)劃分

按輸出數(shù)據(jù)劃分的話可以讓每個(gè)線程做不同位置的結(jié)果計(jì)算,計(jì)算完全獨(dú)立,沒(méi)有依賴性。如果采用靜態(tài)劃分的方式,由于CPU和GPU計(jì)算能力不同,因此,很難做到負(fù)載均衡。采用動(dòng)態(tài)的方式可以做到負(fù)載均衡,即把結(jié)果每次給CPU或GPU設(shè)備一塊,當(dāng)設(shè)備計(jì)算完本次之后,立即向主進(jìn)程申請(qǐng)下一個(gè)分塊,這樣可以做到完全負(fù)載均衡。按輸出數(shù)據(jù)劃分,無(wú)論采用靜態(tài)劃分還是動(dòng)態(tài)劃分,都會(huì)帶來(lái)另外一個(gè)問(wèn)題,由于每個(gè)結(jié)果的計(jì)算都需要所有輸入信息,那么所有進(jìn)程(設(shè)備)都需要讀取一遍所有輸入數(shù)據(jù),動(dòng)態(tài)劃分時(shí)還不只一次,尤其對(duì)于輸入數(shù)據(jù)很大時(shí),這將會(huì)對(duì)輸入數(shù)據(jù)的IO產(chǎn)生很大的影響,很有可能使IO程序性能瓶頸。

3         按輸入和輸出同時(shí)劃分

由于按輸入或按輸出劃分都存在不同的缺點(diǎn),我們可以采用輸入和輸出同時(shí)劃分的方式進(jìn)行數(shù)據(jù)劃分,如圖4所示。

從輸出角度,讓所有的計(jì)算進(jìn)程(設(shè)備)都有一份計(jì)算結(jié)果,設(shè)備內(nèi)的線程對(duì)結(jié)果進(jìn)行并行計(jì)算,每個(gè)設(shè)備都有一份局部的計(jì)算結(jié)果,所有設(shè)備都計(jì)算完畢之后,利用MPI進(jìn)程對(duì)所有設(shè)備的計(jì)算結(jié)果進(jìn)行規(guī)約,規(guī)約最后的結(jié)果即是最終的結(jié)果。

從輸入角度,按輸入數(shù)據(jù)動(dòng)態(tài)劃分給不同的計(jì)算進(jìn)程(設(shè)備),這樣可以滿足所有的計(jì)算進(jìn)程負(fù)載均衡。


圖4 CPU+GPU協(xié)同計(jì)算數(shù)據(jù)劃分示例

posted on 2013-02-17 13:27 jackdong 閱讀(1739) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OpenCL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情国产日韩| 亚洲乱码日产精品bd| 韩国精品在线观看| 国产欧美日韩伦理| 国产精品一区二区你懂的| 性欧美暴力猛交69hd| 99xxxx成人网| 亚洲免费小视频| 亚洲视频网在线直播| 国产视频在线观看一区二区| 欧美视频一区二区三区…| 欧美三级特黄| 国产精品久在线观看| 狂野欧美性猛交xxxx巴西| 久久人人97超碰精品888| 亚洲精品系列| 亚洲一区二区视频在线观看| 欧美一级网站| 美女脱光内衣内裤视频久久网站| 亚洲专区在线| 久久国产加勒比精品无码| 老牛嫩草一区二区三区日本 | 亚洲大胆人体视频| 免费一区视频| 亚洲美女诱惑| 久久网站免费| 欧美性色视频在线| 精品999久久久| 亚洲一区二区视频| 美女精品在线| 亚洲字幕在线观看| 欧美日韩福利视频| 在线观看日产精品| 欧美一区二区三区喷汁尤物| 一本在线高清不卡dvd| 小黄鸭精品密入口导航| 欧美大色视频| 欧美在线视频在线播放完整版免费观看| 亚洲精品免费在线| 久久久成人精品| 国产精品久久久久影院亚瑟| 国产精品福利在线| 亚洲激情图片小说视频| 两个人的视频www国产精品| 99这里只有久久精品视频| 免费成人高清在线视频| 国语自产精品视频在线看8查询8| 国产在线精品二区| 亚洲免费一在线| 亚洲欧美一区二区精品久久久| 一区二区三区回区在观看免费视频| 亚洲欧洲在线视频| 欧美一区亚洲二区| 亚洲一区二区三区国产| 欧美午夜视频在线| 亚洲影院污污.| 一本一本a久久| 欧美日韩精品三区| 99热免费精品在线观看| 亚洲日本无吗高清不卡| 欧美电影在线观看完整版| 亚洲国产91| 国产精品一二三四区| 国产精品极品美女粉嫩高清在线 | 麻豆成人在线播放| 国内久久婷婷综合| 久久久中精品2020中文| 亚洲国产三级| 麻豆成人在线| 一本大道av伊人久久综合| 亚洲欧洲一级| 欧美偷拍一区二区| 欧美一区二区三区精品| 久久se精品一区二区| 亚洲国产日韩欧美综合久久| 亚洲欧洲日韩综合二区| 欧美日韩亚洲激情| 久久国产主播| 久久久亚洲高清| 日韩视频免费在线| 一本色道久久综合亚洲精品按摩| 久久成人免费视频| 亚洲福利专区| 亚洲美女福利视频网站| 国产精品扒开腿做爽爽爽视频| 在线观看一区| 午夜国产精品视频| 久久se精品一区二区| 9人人澡人人爽人人精品| 麻豆精品一区二区av白丝在线| 亚洲精品美女91| 国产美女精品免费电影| av不卡免费看| 亚洲欧美日韩精品| 亚洲精品视频免费在线观看| 亚洲深夜福利视频| 亚洲黄色成人久久久| 亚洲一区日韩| 日韩特黄影片| 欧美一区午夜精品| 国产精品美女www爽爽爽| 久久午夜精品一区二区| 亚洲欧美日韩视频一区| 亚洲欧洲一区二区在线播放| 麻豆精品在线观看| 国产精品久久看| 亚洲国产99| 好吊色欧美一区二区三区四区| 欧美在线亚洲一区| 欧美激情视频在线播放| 久久亚洲不卡| 国产精品自拍三区| 日韩一级精品| 国产精品啊v在线| 欧美大片免费看| 国产又爽又黄的激情精品视频 | 国产日韩av在线播放| 亚洲国产婷婷香蕉久久久久久| 蜜乳av另类精品一区二区| 午夜电影亚洲| 亚洲一区免费视频| 久久国产一区| 亚洲欧美欧美一区二区三区| 亚洲精品系列| 狠狠综合久久av一区二区小说| 久久免费黄色| 久久蜜桃av一区精品变态类天堂| 伊人久久大香线| 亚洲综合色婷婷| 亚洲欧美综合一区| 欧美日韩伊人| 99视频一区二区| 亚洲天堂成人在线观看| 欧美久久电影| 亚洲黄色精品| 一区二区高清| 欧美揉bbbbb揉bbbbb| 日韩写真视频在线观看| 中文在线资源观看视频网站免费不卡| 亚洲小视频在线| 国产欧美在线播放| 亚洲永久免费av| 久久国内精品视频| 欧美日韩高清在线观看| 亚洲国产一二三| 国产日韩欧美成人| 欧美一级久久| 欧美激情一区二区| 日韩午夜剧场| 欧美午夜激情小视频| 这里只有精品丝袜| 久久www成人_看片免费不卡| 国产一区二区中文| 免费欧美网站| 一本色道久久88精品综合| 午夜久久资源| 伊人久久大香线蕉av超碰演员| 亚洲美女视频在线免费观看| 亚洲特级毛片| 在线观看日韩av| 欧美中文日韩| 欧美黄色免费| 午夜精品在线视频| 亚洲人成在线影院| 国产精品网站在线观看| 久久久综合网站| 一区二区免费在线观看| 久久午夜精品一区二区| 一区二区三区四区精品| 国产亚洲激情视频在线| 欧美α欧美αv大片| 一区二区三区精品久久久| 久久中文在线| 亚洲男人第一网站| 亚洲三级影院| 久久精品主播| 亚洲乱码国产乱码精品精可以看| 国产一区二区成人久久免费影院| 亚洲精品综合精品自拍| 久久国产加勒比精品无码| 99国内精品| 伊人精品成人久久综合软件| 久久国产精品亚洲77777| 亚洲国产一区二区三区在线播| 国自产拍偷拍福利精品免费一| 亚洲私人影吧| 亚洲国产美女久久久久| 午夜天堂精品久久久久| 一区在线观看视频| 久久裸体视频| 亚洲精品久久久久| 亚洲无亚洲人成网站77777| 国产一区二区中文字幕免费看| 亚洲色图自拍| 亚洲电影自拍| 久久人人看视频| 性色av一区二区三区| 亚洲天堂第二页| 亚洲精品女人| 亚洲国产乱码最新视频|