1. 程式人生 > >CUDA 學習(三)、CUDA硬體概述

CUDA 學習(三)、CUDA硬體概述

一、PC架構

        先看一下酷睿架構圖:

                       

       PCI-E 是一個有意思的匯流排。與其上一代PCI(外圍裝置互連)匯流排不同,PCI-E提供一個確定的頻寬。在原先的PCI系統中,每個裝置都可以使用匯流排的全部頻寬,但一次只能讓一個裝置使用。因此,你增加的PCI卡越多,每個卡能夠獲得的可用頻寬就越少。PCI-E匯流排通過引入PCI-E通道解決了這個問題。這些通過時一些高速的序列鏈路,這些鏈路組合在一起構成了X1,X2,X4,X8或X16鏈路。圖中PCI-E配置提供5GB/S的全雙工匯流排。這意味著,資料的傳入與傳出可用同時並行享有同樣的速度。也就是說,我們在以5GB/S的速度向GPU卡傳資料的同時,還能夠以5GB/S的速度從GPU卡接收資料。但是,這並不是意味著如果不接收資料,我們就可以10GB/S的速度向GPU卡傳送資料(即頻寬是不可以累加)。

二、GPU硬體結構

       從圖中可以看出,GPU的硬體由以下幾個關鍵模組組成:(1)記憶體(全域性的、常理的、共享的)、(2)流處理器簇(SM)、(3)流處理器(SP)

                  

        GPU實際上是一個SM的陣列,每個SM包含N個核(如G80和GT200中有8個核)。一個GPU裝置中包含一個或多個SM,這是處理器具有可擴充套件型的關鍵因素。如果向裝置中增加更多的SM,GPU就可以在同一時刻處理更多的任務,或者對於同一任務,如果有足夠的並行性的話,GPU可以更快的完成它。

      每個SM都是由不同數量的一些關鍵部件組成,為了簡單起見,沒有在圖中畫出。最重要的部分是每個SM中若干個SP,圖中顯示的是8個SP,在費米架構中增加至32-48個。在下一代產品中每個SM中SP的數量極有可能繼續增加。

      每個SM都需要訪問一個所謂的暫存器檔案(register File),這是一組能夠以與SP相同速度工作的儲存單元,所以訪問這組暫存器單元幾乎不需要任何等待時間。不同型號的GPU中,暫存器檔案的大小可能是不同的。它用來儲存SP上執行的執行緒內部活躍的暫存器。另外,還有一個只供每個SM內部訪問的共享記憶體(shared Memory),這可以用作“程式可控”快取記憶體。與CPU內部的快取記憶體不同,它沒有自動完成資料的硬體邏輯---它完全是由程式設計師控制。

      對於紋理記憶體(texture memory)、常理記憶體(constant memory)、全域性記憶體(global memory)每一個SM都分別設定有獨立訪問它們的匯流排。其中,紋理記憶體是針對全域性記憶體的一個特殊檢視,用來儲存插值(interpolation)計算所需的資料,例如,顯示2D或3D影象時需要的查詢表。它擁有基於硬體進行插值得特性。常理記憶體用於儲存那些只讀的資料,所有的GPU卡均對其進行快取。與紋理記憶體一樣,常理記憶體也是全域性記憶體建立的一個檢視。

      每個SM還有兩個甚至更多的專用單元(SPU),SPU專門執行諸如高速的24位正弦函式/餘弦函式/指數函式操作等類似的特殊硬體指令。

                                    

三、GPU計算能力



相關推薦

CUDA 學習CUDA硬體概述

一、PC架構         先看一下酷睿架構圖:                                PCI-E 是一個有意思的匯流排。與其上一代PCI(外圍裝置互連)匯流排不同,PCI-E提供一個確定的頻寬。在原先的PCI系統中,每個裝置都可以使用匯流排的全部

CUDA學習之使用GPU進行兩個陣列相加

 傳入兩個陣列,在GPU中將兩個陣列對應索引位置相加 #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <iomanip> #include <iostream> #in

操作系統學習分頁機制

x86 頁面 管理機 技術 由於 映射 空間 pos 邏輯地址 目錄 1.分頁機制介紹 2.頁表結構 3.頁表項格式 4.虛擬存儲 5.直達底部 分頁機制介紹 分頁機制是 80x86 內存管理機制的第二部分。它在分段機制的基礎上完成虛擬地址到物理地址的轉換過程。分段

操作系統學習 保護機制概述

長度 發的 之間 軟件開發 軟件 內存空間 工作 尋找 超級用戶 保護機制是可靠運行多任務環境所必須的。它可以用於保護各個任務免受互相之間的幹擾。在軟件開發的任何階段都可以使用段級和頁級保護來協助尋找和檢測設計問題和錯誤。當程序對錯誤內存空間執行了一次非期望的引用,保護機制

作業系統學習 保護機制概述

保護機制是可靠執行多工環境所必須的。它可以用於保護各個任務免受互相之間的干擾。在軟體開發的任何階段都可以使用段級和頁級保護來協助尋找和檢測設計問題和錯誤。當程式對錯誤記憶體空間執行了一次非期望的引用,保護機制可以阻止這種操作並且報告此類事件。 保護機制可以被用於分段和分頁機

CUDA系列學習GPU設計與結構QA & coding練習

啥?你把CUDA系列學習(一),(二)都看完了還不知道為什麼要用GPU提速? 是啊。。經微博上的反饋我默默感覺到提出這樣問題的小夥伴不在少數,但是更多小夥伴應該是看了(一)就感覺離自己太遠所以趕緊撤粉跑掉了。。。都怪我沒有寫CUDA系列學習(零)。。。那麼,這一章就補上這一塊

機器學習—線性回歸邏輯回歸Softmax回歸 的區別

樣本 自變量 進行 方便 線性回歸 https 參數 常用方法 等價 1、什麽是回歸?   是一種監督學習方式,用於預測輸入變量和輸出變量之間的關系,等價於函數擬合,選擇一條函數曲線使其更好的擬合已知數據且更好的預測未知數據。 2、線性回歸   代價函數(平方誤差代價函

機器學習 深度學習的經典論文程式碼部落格文章

前言     總結了Deep Learning應用相關的經典論文、程式碼、部落格文章之類,包括CNN、RCNN、DQN、RNN等,github上看到。 原文地址:https://github.com/kristjankorjus/applied-deep-l

python學習字典元組字串 語法基礎與常用操作

元組,也算是一個list,但是元組不能修改,比如定義一個數據庫的連線資訊,定義之後不能被修改。用()括號表示,用逗號隔開,比如:mysql=(‘192.168.xx.xxx’,’root’,’123456’) 操作 :count、index count操作:計算元素出現的次數

web前端學習css學習筆記部分5-- CSS動畫--頁面特效HTML與CSS3簡單頁面效果實例

key cti 樣式 描述 ans 轉換方法 動畫效果 ansi order CSS動畫--頁面特效部分內容目前僅僅觀看了解內容,記錄簡單筆記,之後工作了進行內容的補充 7. CSS動畫--頁面特效 7.1 2D、3D轉換   7.1.1 通過CSS3轉換,我們能夠對

rabbitmq學習:rabbitmq之扇形交換機主題交換機

 前言 上篇我們學習了rabbitmq的作用以及直連交換機的程式碼實現,這篇我們繼續看如何用程式碼實現扇形交換機和主題交換機 一、扇形交換機   1.生產者    /** * 生產者 */ public class LogProducer { //交換機名稱 pu

python--基礎學習字串單引號雙引號引號

#單引號str1='python'#單引號中使用雙引號str2='"python"'#雙引號中使用單引號str3="'python'"#三單引號str4='''python'''#三單引號中間使用雙引號str5='''"python"'''#三單引號中有換行符str6='''hellopython'''#

Redis 學習redis伺服器叢集客戶端分片

下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麼叢集? 通常,為了提高網站響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端資料庫中讀取。Redis是一個很好的Cache工具。大型網站應用,熱點資料量往往巨大,幾十G上百G是很正常的事兒,在這種情

3.Redis 學習redis伺服器叢集客戶端分片

下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麼叢集? 通常,為了提高網站響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端資料庫中讀取。Redis是一個很好的Cache工具。大型網站應用,熱點資料量往往巨大,幾十G上百G是很正常的事兒,在這種

《MySQL必知必會》學習筆記MySQL中的資料運算

本文主要介紹MySQL中的算術運算、常用的資料處理函式和聚集函式。 利用的資料表均來自《MySQL必知必會》中提供的資料表。 1、MySQL中的算術運算 MySQL中的算術操作符主要有加(+)減(-)乘(*)除(/)四種。 舉例如下: SELE

OpenLayers 學習向量圖層上新增點繪製點多邊形

建立向量圖層,新增EditingToolbar類物件,該物件可以在向量圖層上新增點繪製點、線、多邊形等。 原始碼為: <!DOCTYPE html> <html> <head> <title> 向量圖層上新增點繪製點、線、

CUDA 學習

CUBLAS_Library.pdf 學習記錄 Chapter 1. INTRODUCTION 從CUDA6.0之後,cuBLAS 庫有兩套API,第一個稱為cuBLAS API,第二個是CUBLASXT API,這個文件講的是cuBLAS API。 使

機器學習演算法原理與實踐卡爾曼濾波器演算法淺析及matlab實戰

卡爾曼濾波器是一種利用線性系統狀態方程,通過系統輸入輸出觀測資料,對系統狀態進行最優估計的演算法。而且由於觀測包含系統的噪聲和干擾的影響,所以最優估計也可看做是濾波過程。 卡爾曼濾波器的核心

Kotlin學習—— 基本型別,包,控制流:ifwhenforwhile,Break和continue

一.基本型別 Kotlin的數字表現,如下 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 這些就是全部的定義數字的方式了,而我們一般的寫法也和JAVA類似 十進位制

javascript 面向物件學習——this,bindapply 和 call

this 是 js 裡繞不開的話題,也是非常容易混淆的概念,今天試著把它理一理。 this 在非嚴格模式下,總是指向一個物件,在嚴格模式下可以是任意值,本文僅考慮非嚴格模式。記住它總是指向一個物件對於理解它的意義很重要。this 在實際使用中,大致分為以下幾種情況: 1. 函式作為物件的方法呼叫時,this