NVIDIA CUDA入門(1)CPU結構

基礎知識:

1、計算機體系結構基礎

2、C語言程序設計

3、計算機算啊基礎

4、線性代數

https://developer.nvidia.com/computeworks NAIDIA CUDA Zone

一、CPU體系架構概述

1、什麼是CPU?

大多馮諾依曼體系結構,執行指令,處理數據的器件、增加了複雜功能、包含大量晶體管。

指令舉例:

算術:add r3,r4 ->r4

訪存:load [r4] -> r7

控制: jz cnd(如果是0,跳轉)

對於一個編譯好的程序,最優化目標:

每個指令需要的幾個時鐘週期*每個時鐘週期所用的時間

兩條線:數據線,指令線。

CPU一條指令爲一個基本的操作單元,最常用指令MAC,乘加指令,a= b*c+d

流水線、亂序執行

寄存器reg,算術邏輯單元ALU,L1一級緩存,L2二級緩存,RAM,硬盤。

桌面應用

1、少量線程 一段指令代碼,無存儲空間 輕量級進程

2、大量分支交互操作

3、大量存儲器訪問

 

 

指令集並行,流水線極大地減少時鐘週期    問題:有依賴性關係的指令   現在大概都是十幾級

 

旁路可以解決相互依賴的問題,不需要寫入memory。

流水線分支預測:猜測下一條指令、基於過去的分支記錄

分支預測器增加了面積。

分支斷定:用條件語句替換分支

CPI越小小號,ICP越大越好

ADD R0,R1->R2

ADD_V (R0,R1,R2......R7)->

峯值IPC爲N

OoO可以使IPC接近理想

延遲是第一個數據來到第一個數據出,吞吐是單位時間內可以同時多少

SRAM 6個晶體管可以搭起來、DRAM斷電消失

Caching緩存 數據放在儘可能近的位置

存儲器設計:

分區(Banking)避免多端口、一致性、控制器多通道,增加帶寬

線程:指令流+私有的寄存器,程序計數器、棧(先進先出)+共享全局變量、堆

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章