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