目錄前言
一、gpu 的發展
圖形渲染的過程
二、gpu架構
現代gpu的核心優化
1、晶元**
2、多核並行和 simt
3、gpu 裡的「超執行緒」
三、gpu與cpu的區別
gpu(graphics processing unit,圖形處理器)是計算機裡的另乙個處理器,同樣可以進行計算;
其是顯示卡中的最核心元件,由於顯示卡主要是通過gpu來工作的,因而通常有人把gpu直接當做顯示卡。
為什麼不能直接改造cpu進行圖形渲染呢?或直接改造cpu進行深度學習呢?
為什麼玩遊戲需要gpu?
gpu是否能替代cpu?
gpu 是隨著在計算機裡面需要渲染三維圖形的出現而發展起來的裝置。
要知道過去其實我們所看到的3d圖形可能是偽3d,並不是通過圖形渲染形成的,而是通過多個不同視角構成的圖形,從而讓人產生3d的視角。由於要實現逼真的成像效果需要的計算量太大,因而3d遊戲之類的產品在gpu沒有出現之前沒能流行起來。
如下圖所示一般分成:頂點處理 -> 圖元處理 -> 柵格化 -> 片段處理 -> 畫素操作
通俗的來說就是先確定要顯示的點,把點連線起來並轉化成乙個個畫素點,再對單獨畫素點上色,最終進行畫素處理也就是畫素的顯示效果呈現。
由於要顯示的效果越逼真,那麼所需要的計算量就越大,這對於通用的cpu來說是無法承受了。
最主要的一點就是這些操作是可並行的並且處理流程是固定的。竟然流程是固定的那麼是否可直接將這些過程放到硬體上去執行呢?
因此聰明的科學家們就生產出voodoo fx圖形加速卡 或者 tnt 這樣的顯示卡,只將頂點處理放到cpu其他移到硬體上執行。如
下圖所示:
由於頂點處理還在cpu上處理,也就是說圖形成像效果不僅受限於顯示卡也受限於cpu,因此1999 年 nvidia 推出的 geforce 256 顯示卡,就把頂點處理的計算能力,也從 cpu 裡挪到了顯示卡裡。這個時候整個圖形渲染過程都是在硬體裡面固定的管線來完成的。
從 2001 年的 direct3d 8.0 開始,微軟第一次引入了可程式設計管線(programable function pipeline)的概念。程式設計人員可通過編碼的方式對圖形渲染進行處理而不僅限於固定的硬體配置。
現代cpu 裡的電晶體變得越來越多,越來越複雜,「計算」已經不是其核心功能,而是拿來實現處理亂序執行、進行分支**、快取記憶體。因為整個計算流程是完全固定的,不需要流水線停頓、亂序執行等等的各類導致 cpu 計算變得複雜的問題。因為gpu的處理過程類似於流式物理,可以將多餘的電路給去掉。
如下圖所示:
如下圖直觀的呈現了cpu與gpu的架構區別。
出於gpu的電路比較簡單,因此便可在將其製造成多核gpu。這也使得gpu 的運算能力天然支援並行了。如下圖所示:利用simt實現把多條資料,交給不同的執行緒去處理,因此乙個 gpu 的核裡,就可以放下更多的 alu,同時進行更多的並行運算了。
由於在**時去掉了可執行if…else 這類分支**,所以難免會遇到「流水線停頓」問題。如下圖所示:其通過提供更多的執行上下文,將「流水線停頓」問題得以解決,所以,乙個 core 裡面的執行上下文的數量,需要比 alu 多。
注:參考於極客時間徐文浩老師的深入淺出計算機組成原理
計算機組成原理(七)
計算機資料處理與儲存 一 移位操作 分為邏輯移位與算數移位 正數補碼和原碼移位規則 符號位不變 雙符號位第一位不變 空位補0.負數補碼移位規則 符號位不變 雙符號位第一位不變 左移補0,右移補1 第二符號位移到尾數第一位 二 捨入方法 0舍1入 原碼 補碼 末位恆置1 原碼 補碼 三 數字拓展與壓縮...
計算機組成原理cu 計算機組成原理 計算機概論
現代計算機樣式千奇百怪,常見的有我們的筆記本,台式電腦,也有各種伺服器 手機 攝像頭等都屬於計算機範疇。計算機包含我們看得見摸得著的計算機實體,稱為計算機硬體,如cpu 記憶體 各種掛接裝置等 還有我們看不見摸不著的軟體,它支援著硬體按照我們的預想在操作,包括系統軟體和應用軟體 計算機硬體樣式千奇百...
計算機組成原理之組成篇
匯流排的分類 系統匯流排 計算機匯流排的仲裁 為了解決匯流排使用權的衝突問題 匯流排的仲裁方法 鏈式查詢 定時器定時查詢 相當於就是乙個編號的鏈式查詢,只不過它這種情況下不是按照優先順序排列的 獨立請求 好處 響應速度快,優先順序可動態改變 壞處 裝置連線多,匯流排控制複雜 cpu與io裝置的通訊方...