【GPGPU编程模型与架构原理】第一章 1.1 GPGPU 与并行计算机
??GPGPU是通用圖形處理器。由于產(chǎn)業(yè)游戲的推動(dòng),GPU成為專(zhuān)門(mén)為提升圖形渲染效率的而設(shè)計(jì)的處理器芯片。隨著功能的不斷完善,GPU逐漸發(fā)展成為并行計(jì)算加速的通用圖形處理器,即GPGPU。近年來(lái),人工智能的發(fā)展,GPGPU由于其強(qiáng)大的計(jì)算能力和高度靈活的可編程性,已經(jīng)成為深度學(xué)習(xí)訓(xùn)練和推理任務(wù)最重要的計(jì)算平臺(tái)。
1.1GPGPU 與并行計(jì)算機(jī)
并行計(jì)算機(jī):并行計(jì)算是一些處理單元的集合,它們通過(guò)通信和協(xié)作快速解決一個(gè)大的問(wèn)題。
- 處理單元:具有指令處理和計(jì)算能力的邏輯電路。一個(gè)處理單元既可以是一個(gè)算術(shù)邏輯單元,也可以是處理器核心、處理器芯片或者整個(gè)計(jì)算節(jié)點(diǎn)。
- 處理單元的集合:說(shuō)明并行計(jì)算有一定的規(guī)模性
- 通信:是指處理單元之間進(jìn)行數(shù)據(jù)交互。通信明確了兩類(lèi)并行體系結(jié)構(gòu):共享存儲(chǔ)結(jié)構(gòu)和消息傳遞結(jié)構(gòu)
- 協(xié)作:指并行任務(wù)在執(zhí)行過(guò)程中相對(duì)于其他任務(wù)的同步關(guān)系,約束了并行計(jì)算進(jìn)行多任務(wù)處理的順序,保證其正確性。
- 快速解決一個(gè)大的問(wèn)題:并行計(jì)算機(jī)是為解決一個(gè)問(wèn)題工作的,其設(shè)計(jì)目標(biāo)是性能
從定義看,GPGPU體系結(jié)構(gòu)也符合并行計(jì)算機(jī)的定義,而且它明確的采用了類(lèi)似單指令多數(shù)據(jù)的設(shè)計(jì)方式和實(shí)現(xiàn)方法,成為當(dāng)今并行計(jì)算機(jī)最成功的的設(shè)計(jì)范例之一。
1.1.1 并行體系結(jié)構(gòu)
·根據(jù)指令流和數(shù)據(jù)流定義并行計(jì)算機(jī)的類(lèi)型。指令流是單個(gè)程序計(jì)數(shù)器產(chǎn)生的指令序列,數(shù)據(jù)流是指令所需要的數(shù)據(jù)和其訪(fǎng)問(wèn)地址的序列,包括輸入數(shù)據(jù)、中間數(shù)據(jù)和輸出數(shù)據(jù)。
- 單指令流單數(shù)據(jù)流(SISD):這個(gè)并不是并行體系結(jié)構(gòu),但他可以利用指令級(jí)并行,在指令相互獨(dú)立時(shí)實(shí)現(xiàn)多條指令的并行。傳統(tǒng)的單核CPU是SISD典型代表。
- 單指令流多數(shù)據(jù)流(SIMD):一條指令對(duì)多個(gè)數(shù)據(jù)進(jìn)行操作,向量處理器就是典型代表。實(shí)際中,SIMD通常要求問(wèn)題中包含大量對(duì)不同數(shù)據(jù)的相同運(yùn)算,SIMD需要高速 I/O 和大容量存儲(chǔ)來(lái)實(shí)現(xiàn)高效并行。GPGPU也借鑒了SIMD,通過(guò)內(nèi)置很多SIMD處理單元和多線(xiàn)程抽象來(lái)實(shí)現(xiàn)強(qiáng)大的計(jì)算處理能力。
- 多指令流單數(shù)據(jù)流(MISD):采用多條指令來(lái)處理單條數(shù)據(jù)流,數(shù)據(jù)可以從一個(gè)處理單元傳遞到另一個(gè)處理單元實(shí)現(xiàn)并行處理。一般認(rèn)為,脈動(dòng)陣列是MISD的實(shí)例,例如谷歌的TPU系列深度學(xué)習(xí)加速器。
- 多指令流多數(shù)據(jù)流(MIMD):最為通用的體系結(jié)構(gòu),它對(duì)指令流和數(shù)據(jù)流之間沒(méi)有限制,各個(gè)處理程序既可以執(zhí)行同一程序,也可以執(zhí)行不同的程序。MIMD通用性搞,但設(shè)計(jì)復(fù)雜導(dǎo)致性能低下。
并行體系結(jié)構(gòu)最基本的方式是單核內(nèi)指令級(jí)并行,即處理器在同一時(shí)刻可以執(zhí)行多條指令。
- 流水線(xiàn)技術(shù)是實(shí)現(xiàn)指令級(jí)并行的使能技術(shù)
- 采用流水線(xiàn)技術(shù)設(shè)計(jì)的指令級(jí)并行微處理器內(nèi)核已經(jīng)成為設(shè)計(jì)典范
- 在這個(gè)基礎(chǔ)上是多線(xiàn)程和多核并行,即一個(gè)芯片上集成多個(gè)處理單元或處理核心,同時(shí)完成多個(gè)任務(wù)
- 再上一個(gè)層次是計(jì)算機(jī)并行,即多個(gè)芯片通過(guò)專(zhuān)用的網(wǎng)絡(luò)連接在一起實(shí)現(xiàn)更大規(guī)模的并行
- 更高層次并行是倉(cāng)儲(chǔ)級(jí)計(jì)算器,即借助互聯(lián)網(wǎng)技術(shù)將數(shù)以萬(wàn)計(jì)的處理器和計(jì)算節(jié)點(diǎn)連接在一起,每個(gè)節(jié)點(diǎn)是一個(gè)獨(dú)立的計(jì)算機(jī),并具備前面描述的多種層面的并行。
指令級(jí)和數(shù)據(jù)級(jí)并行適合在內(nèi)核完成,因?yàn)樗枰募拇嫫鱾鬏敿?jí)(RTL)通信和協(xié)作在核內(nèi)以極低的延遲完成。
現(xiàn)代處理器中的每個(gè)核心都會(huì)綜合運(yùn)用流水化、超標(biāo)量、超長(zhǎng)指令、分支預(yù)測(cè)、亂序執(zhí)行等技術(shù)充分挖掘指令級(jí)并行。相對(duì)來(lái)說(shuō),MIMD的并行層次更高,會(huì)更多的利用多個(gè)處理單元、多個(gè)處理單元、多個(gè)處理核心和多個(gè)處理器或更多節(jié)點(diǎn)來(lái)實(shí)現(xiàn)。
1.1.2 GPU和CPU體系結(jié)構(gòu)對(duì)比
CPU設(shè)計(jì)理念
- 注重通用性來(lái)處理各種不同的數(shù)據(jù)類(lèi)型
- 同時(shí)支持復(fù)雜的控制指令,例如條件指令、分支、循環(huán)、邏輯判斷及子程序調(diào)用等
- 因此CPU微架構(gòu)的復(fù)雜性高,是面向指令執(zhí)行的高效率而設(shè)計(jì)的
GPU設(shè)計(jì)理念
- 最初是針對(duì)圖形處理領(lǐng)域而設(shè)計(jì)的
- 圖形運(yùn)算的特點(diǎn)是大量同類(lèi)型數(shù)據(jù)的密集運(yùn)算
核心數(shù)對(duì)比:對(duì)于CPU來(lái)說(shuō),內(nèi)核較少,一般是4核或者8核;而GPU卻是數(shù)以千計(jì)更小、更高效的核心組成。這些核心專(zhuān)門(mén)為了同時(shí)處理多任務(wù)而設(shè)計(jì),因此GPU也被叫做眾核處理器。
CPU和GPU的架構(gòu)對(duì)比圖:
CPU:
- 大部分晶體管用于構(gòu)建控制電路和存儲(chǔ)單元,只有啥部分的晶體管用來(lái)完成實(shí)際的運(yùn)算工作,這使得CPU在大規(guī)模并行計(jì)算能力上極受限制
- CPU更擅長(zhǎng)邏輯控制,能夠使用復(fù)雜的運(yùn)算環(huán)境
- 由于CPU一般除磷低延遲任務(wù),所有更需要L1、L2、L3高速緩存空間來(lái)減少訪(fǎng)問(wèn)指令和數(shù)據(jù)時(shí)產(chǎn)生的延遲
GPU
- GPU控制相對(duì)簡(jiǎn)單,對(duì)高速緩存的需求相對(duì)較小
- 所以大部分的晶體管可以組成專(zhuān)用電路、多條流水線(xiàn),使得GPU的計(jì)算能力有了突破性的飛躍
- 圖形渲染的高度并行性,使得GPU可以通過(guò)簡(jiǎn)單增加處理單元和存儲(chǔ)器控制單元的方式提高處理能力和存儲(chǔ)器寬帶。
近年來(lái),CPU 大幅提高了峰值浮點(diǎn)性能。單仍舊與具有強(qiáng)大浮點(diǎn)運(yùn)算能力的GPU存在差距。
總結(jié)
以上是生活随笔為你收集整理的【GPGPU编程模型与架构原理】第一章 1.1 GPGPU 与并行计算机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: deepfacelive实时AI换脸直播
- 下一篇: Novel-Ai本地部署教程