1. 程式人生 > >CUDA學習記錄之-吉祥的部落格

CUDA學習記錄之-吉祥的部落格

CUDA簡介
CUDA和C對記憶體操作函式的對比表
這裡寫圖片描述

GPU架構
軟硬體構架圖
這裡寫圖片描述

GPU架構(Fermi、Kepler)
1.CUDA核的數量(包括ALU和FPU)=SM的數量×每個SM裡面CUDA核的數量,例如:512個accelerator cores即所謂CUDA cores(包含ALU和FPU)16個SM,每個SM包含32個CUDA core。
2.每個SM由一下幾部分組成:
執行單元(CUDA cores)
排程分配warp的單元
shared memory,register file,L1 cache
3.在不同架構的GPU中,每個SM同時處理的warp數是不一樣的,如:Fermi(compute capability 2.x)每個SM同時可處理48個warp共計1536個thread;Kepler K20X(compute capability 3.5)每個SM可以同時排程64個warp共計2048個thread。

Warp解析
1.從邏輯上講,所有thread是並行的,但是,從硬體上講,實際上並不是所有的thread能夠同一時刻執行。
2.warp是SMs中執行緒排程單位。將blocks分成warps在SMs執行如下圖所示。下圖3個block,每個block按照連續的32個執行緒分成一個個warp
這裡寫圖片描述
3.一個warp中的執行緒必然在同一個block中。
4.一個warp包含32個並行thread,由此可見,warp是32個擁有關係的thread的集合。

Kernel效能調節
1.程式碼的功能:矩陣相加,邏輯上要處理的資料有16384個元素
2.結論:處理相同的問題,配置的block更多,device就會達到更多active warp,效能也就越好(耗時越少);較高的achieved Occupancy並不一定就意味著更好的效能,也就是說還有更多的因素影響著GPU的效能;較高的load throughput也不一定就有較高的效能。

Memory Model
1.GPU和CPU的儲存結構基本一樣,下圖體現了速度和大小的變化趨勢
這裡寫圖片描述
2.儲存器結構圖:
這裡寫圖片描述

Shared Memory
1.GPU上的memory有兩種:
 On-board memory
 On-chip memory
2.

相關推薦

CUDA學習記錄吉祥部落

CUDA簡介 CUDA和C對記憶體操作函式的對比表 GPU架構 軟硬體構架圖 GPU架構(Fermi、Kepler) 1.CUDA核的數量(包括ALU和FPU)=SM的數量×每個SM裡

學習英文社群,部落及原始碼

前言(Introduction) 前些天寫了一篇《程式猿也愛學英語(上),有圖有真相》,大概介紹了我學英語的一些基本資料以及心得體會,先後從發音(Pronunciation, 基本常用單詞積累(Vocabulary), 新概念英語(New Concept English), 究竟需不需要學語法(Englis

機器學習(Machine Learning)與深度學習(Deep Learning)資料 文章、部落

介紹:這是一篇介紹機器學習歷史的文章,介紹很全面,從感知機、神經網路、決策樹、SVM、Adaboost到隨機森林、DeepLearning.介紹:這一篇介紹如果設計和管理屬於你自己的機器學習專案的文章,裡面提供了管理模版、資料管理與實踐方法.介紹:如果你還不知道什麼是機器學習

SQL Server學習記錄獲取每月每季度每年第一天和最後一天

第一天 ediff code spa -1 指定日期 ctc 算法 datetime DECLARE@dtdatetime SET@dt=GETDATE() DECLARE@numberint SET@number=3 --1.指定日期該年的第一天或最後

Python 第八階段 學習記錄---算法

第一個元素 排序 小根堆 () 規律 空間復雜度 場景 復數 練習 算法(Algorithm): 一個計算過程, 解決問題的方法1、遞歸的兩個特點 - 調用自身 - 結束條件時間復雜度 - 時間復雜度是用來估計算法運行時間的一個式子(單位) - 一般

SpringBoot-Mybatis_Plus學習記錄公共字段自動填充

ast 使用配置 後臺 pri emp port 更多 但是 pub 一.應用場景 平時在建對象表的時候都會有最後修改時間,最後修改人這兩個字段,對於這些大部分表都有的字段,每次在新增和修改的時候都要考慮到這幾個字段有沒有傳進去,很麻煩。mybatisPlus有一個很

Python爬蟲學習筆記微信宮驗證碼的識別(存在問題)

依次 返回結果 ptc 接下來 clas 軌跡 self top http 本節我們將介紹新浪微博宮格驗證碼的識別。微博宮格驗證碼是一種新型交互式驗證碼,每個宮格之間會有一條 指示連線,指示了應該的滑動軌跡。我們要按照滑動軌跡依次從起始宮格滑動到終止宮格,才可以完成驗證,

git分支與版本管理、版本回退、衝突解決記錄 - 海北天藍 - 部落

一.基礎使用 1.初始化本地倉庫 git init 2.關聯遠端倉庫 git remote add origin [email protected]:使用者名稱/倉庫名.git 3.新增遠端倉庫檔案到本地 git pull origin master   本地自動建

ElasticSearch 學習記錄 分散式文件儲存往ES中存資料和取資料的原理

分散式文件儲存 ES分散式特性 遮蔽了分散式系統的複雜性 叢集內的原理 垂直擴容和水平擴容 真正的擴容能力是來自於水平擴容–為叢集新增更多的節點,並且將負載壓力和穩定性分散到這些節點中 ES叢集特點 一個叢集擁有相同

CAN匯流排學習記錄二:系統結構與幀結構

CAN匯流排系統結構 CAN 控制器  接收控制單元中微處理器發出的資料,處理資料並傳給 CAN 收發器 CAN 收發器 將資料傳到匯流排 or 從匯流排接收資料給 CAN 控制器 CAN 資料傳遞終端 避免資料傳輸終了反射回來 CAN 資料匯流排 傳輸資料的資料線,兩根:CAN-hig

CAN匯流排學習記錄三:匯流排中主動錯誤和被動錯誤的通俗解釋

首先建議把廣泛使用的“主動錯誤”和“被動錯誤”概念換成“主動報錯”和“被動報錯”。 1. 主動報錯站點 只要檢查到錯誤,它立即“主動地”發出錯標識。所謂“出錯標識“,它本身就是一個“錯誤的位序列”(連續的6個顯性位,不滿足 CAN 協議的“最多5個連續的同性位”要求),目的是“主動地”告訴大家:即使你們沒

CAN匯流排學習記錄四:位定時與同步

一、位定時 1.1 位元率和波特率 1)位速率:又叫做位元率(bit rata)、資訊傳輸率,表示的是單位時間內,總線上傳輸的資訊量,即每秒能夠傳輸的二進位制位的數量,單位是bit per second。 2)波特率:又叫做傳位元速率、訊號傳輸率,表示的是單位時間內傳輸的碼元的數量,當兩相調製時,一個碼

Linux從0到1搭建個人部落系統wordpress

一、搭建系統環境 LAMP指的是Linux,apache,MySQL,php組成的網站系統,這是搭建網站最簡單快速的組合 1. 基礎環境(防火牆) 剛部署好的linux伺服器預設開啟了防火牆,假如你在該伺服器裝一個HTTP並啟動,在別的機器訪問該HTTP是不成功的

彙編學習記錄

資料來源:組合語言第二版-王爽 1.[bx]和loop指令 [bx]表示一個記憶體單元,它的偏移地址在bx中 我們要完整地描述一個記憶體單元,需要兩種資訊:(1)記憶體單元的地址;(2)記憶體單元的長度(型別)。 loop指令的格式是:loop 標號 CPU執行loop指令的

彙編學習記錄

資料來源:組合語言第二版-王爽 1.段的綜述 我們可以將一段記憶體定義為一個段,用一個段地址指示段,用偏移地址訪問段內的單元,這完全是我們自己的安排。 我們可以用一個段來存放資料,將它定義為“資料段”,將它的段地址放在資料段暫存器ds中,用mov,add,sub等訪問記憶體單元的指令

彙編學習記錄

資料來源:組合語言第二版-王爽 1.mov,add,sub指令 mov指令有以下幾種形式: mov 暫存器,資料              &n

彙編學習記錄

資料來源:組合語言第二版-王爽 1.記憶體中字的儲存 在CPU中,用16位暫存器來儲存一個字。高8位存放高位位元組,低8位存放低位位元組。 記憶體單元:記憶體單元是位元組單元,一個單元存放一個位元組。 字單元:存放一個字型資料(16位)的記憶體單元,由兩個地址連續的記憶體單元組成

彙編學習記錄

資料來源:組合語言第二版-王爽 1.段暫存器: 8086CPU中有4個段暫存器:cs,ds,es,ss 2.cs和ip: cs和ip是8086CPU中兩個最關鍵的暫存器,它們指示了CPU當前讀取指令的地址。 cs為程式碼段暫存器,ip為指令指標暫存器。 在8086PC機中

51微控制器學習記錄蜂鳴器

蜂鳴器發聲原理 是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,微控制器IO引腳輸出的電流較小,微控制器輸出的TTL電平基本上驅動不了蜂鳴器,因此需要增加一個電流放大的電路。三極體的作用為驅動,通過三極體放大驅動電流,從而可以讓蜂鳴器發出聲音。 有源蜂

51微控制器學習記錄2

RAM和ROM的區別 RAM(random access memory)即隨機儲存記憶體,這種儲存器在斷電時將丟失其儲存內容,故主要用於儲存短時間使用的程式。ROM(Read-Only Memory)即只讀記憶體,是一種只能讀出事先所存資料的固態半導體儲存器。手機中的RAM和ROM分別對應電