基本概念:
gpu: graphic processing unit;圖形處理單元;
gpgpu: general purpose computations on gpu;通用計算圖形處理單元;
cpu與gpu的相同點:
(1)都是計算機體系結構中的重要組成部分;
(2)都是超大規模積體電路元件;
(3)都能夠完成浮點運能功能;
cpu與gpu的不同之處:
(1)gpu的設計目的與cpu不同;cpu的微架構是按照兼顧「指令並行執行」和「資料並行運算」的思路而設計,其大部分電晶體主要用於構建控制電路和cache,並且其內部有大約%5是alu,控制電路則更為複雜;二gpu的控制電路則相對簡單的對,而且對cache的需求較小,所以可以把大部分的電晶體都用於計算單元。gpu的40%都是alu;
(2)延遲不同,cpu的記憶體延遲是gpu的1/10;
(3)記憶體頻寬不同;gpgpu的記憶體頻寬是cpu的10倍;
(4)gpgpu具有更大的執行單元;
(5)執行緒輕重程度不同;cpu執行緒是軟體管理的粗粒度重執行緒,當 cpu 執行緒被中斷或者由於等待資源就緒狀態就變為等待狀態,作業系統就需要儲存當前執行緒的上下文,並裝載另外乙個執行緒的上下文。這種機制使得cpu切換執行緒的代價十分高昂,通常需要數百個時鐘週期。而gpu執行緒是硬體管理的細粒度輕執行緒,可以實現零開銷的執行緒切換。當乙個執行緒因為訪問片外儲存器或者同步指令開始等待以後,可以立即切換到另外乙個處於就緒狀態的執行緒,用計算來隱藏延遲,並且執行緒數目越多,隱藏延遲的效果越好。
(6)cpu屬於「多核」,而gpu則屬於「眾核」;cpu 的每個核心具有取指和排程單元構成的完整前端,因而其核心是多指令流多資料流(multiple instruction multiple data,mimd)的,每個 cpu 核心可以在同一時刻執行自己的指令,與其他的核心完全沒有關係。但這種設計增加了晶元的面積,限制了單塊晶元整合的核心數量。gpu的每個流多處理器才能被看作類似於 cpu 的單個核心,每個流多處理器以單指令流多執行緒方式工作,只能執行相同的程式。儘管 gpu 執行頻率低於cpu,但由於其流處理器數目遠遠多於 cpu 的核心數,我們稱之為「眾核」,其單精度浮點處理能力達到了同期 cpu 的十倍之多。
(7)記憶體與暫存器之間的不同;目前的 cpu 記憶體控制器一般基於雙通道或者三通道技術,每個通道位寬64bit;而gpu則有數個儲存器控制單元,這些控制單元具備同時訪問資料的能力,從而使得總的儲存器位寬達到了 512bit。這個差異導致了gpu全域性儲存器頻寬大約是同期cpu最高記憶體頻寬的5倍;
(8)快取機制不同;cpu 擁有多級容量較大的快取來盡量減小訪存延遲和節約頻寬,但快取在多執行緒環境下容易產生失效反應,每次執行緒切換都需要重建快取上下文,一次快取失效的代價是幾十到上百個時鐘週期。同時,為了實現快取與記憶體中資料的一致性,還需要複雜的邏輯控制,cpu 快取機制導致核心數過多會引起系統效能下降。在gpu 中則沒有複雜的快取體系與一致性機制,gpu 快取的主要目的是隨機訪問優化和減輕全域性儲存器的頻寬壓力。
綜上,gpu 是以大量執行緒實現面向吞吐量的資料平行計算,適合於處理計算密度高、邏輯分支簡單的大規模資料並行負載;而 cpu 則有複雜的控制邏輯和大容量的快取減小延遲,擅長複雜邏輯運算。
gpu的一些缺點:
1. 顯示晶元的運算單元數量很多,因此對於不能高度並行化的工作,所能帶來的幫助就不大。
2. 顯示晶元目前通常只支援 32 bits 浮點數,且多半不能完全支援 ieee 754 規格, 有些運算的精確度可能較低。目前許多顯示晶元並沒有分開的整數運算單元,因此整數運算的效率較差。
3. 顯示晶元通常不具有分支**等複雜的流程控制單元,因此對於具有高度分支的程式,效率會比較差。
4. 目前 gpgpu 的程式模型仍不成熟,也還沒有公認的標準。例如 nvidia 和 amd/ati 就有各自不同的程式模型。
最後,需要提醒的是,gpu最近幾年的發展勢頭很兇猛,以至於opencv2.4已經開始考慮利用gpu來加速程式的運算了;而大名鼎鼎的nvidia公司前段時間也宣布開始和opencv進行合作推進計算機視覺演算法的gpu加速;
GPU基本介紹
基本概念 gpu graphic processing unit 圖形處理單元 gpgpu general purpose computations on gpu 通用計算圖形處理單元 cpu與gpu的相同點 1 都是計算機體系結構中的重要組成部分 2 都是超大規模積體電路元件 3 都能夠完成浮點運...
GPU基本介紹
gpu graphic processing unit 圖形處理單元 gpgpu general purpose computations on gpu 通用計算圖形處理單元 cpu與gpu的相同點 1 都是計算機體系結構中的重要組成部分 2 都是超大規模積體電路元件 3 都能夠完成浮點運能功能 c...
GPU基本常識一
gpu graphic processing unit 圖形處理器 shader gpu執行的,針對3d物件進行操作的程式.以vip7000為例 shader 1個shader是128位的處理單元.vip7000的gpu有2個shader,所以有2個core,所以乙個週期可以處理2條指令.vip上有...