日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

计算机组成原理7-CISC和RISC、GPU

發(fā)布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 计算机组成原理7-CISC和RISC、GPU 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、CISC、RISC

復(fù)雜指令集(Complex Instruction Set Computing,簡稱 CISC):CPU 的指令集里的機器碼是固定長度。計算機歷史的早期,所有的 CPU 其實都是 CISC。計算機設(shè)計和制造還是嚴格受硬件層面的限制。CPU 指令集的設(shè)計,需要仔細考慮硬件限制。為了性能考慮,很多功能都直接通過硬件電路來完成。為了少用內(nèi)存,指令的長度也是可變的。

精簡指令集(Reduced Instruction Set Computing,簡稱 RISC):CPU 的指令集里的機器碼是可變長度。隨著計算機技術(shù)的發(fā)展,計算機的性能越來越好,存儲的空間也越來越大了。實際在 CPU 運行的程序里,80% 的時間都是在使用 20% 的簡單指令。

在 RISC 架構(gòu)里面,CPU 選擇把指令“精簡”到 20% 的簡單指令。而原先的復(fù)雜指令,則通過用簡單指令組合起來來實現(xiàn),讓軟件來實現(xiàn)硬件的功能。這樣,CPU 的整個硬件設(shè)計就會變得更簡單了,在硬件層面提升性能也會變得更容易了.RISC 的 CPU 里完成指令的電路變得簡單了,于是也就騰出了更多的空間。這個空間,常常被拿來放通用寄存器。因為 RISC 完成同樣的功能,執(zhí)行的指令數(shù)量要比 CISC 多,所以,如果需要反復(fù)從內(nèi)存里面讀取指令或者數(shù)據(jù)到寄存器里來,那么很多時間就會花在訪問內(nèi)存上。于是,RISC 架構(gòu)的 CPU 往往就有更多的通用寄存器。


2、微指令

指令譯碼階段,譯碼器將機器碼翻譯成幾條微指令,這里的微指令是固定長度的 RISC 風(fēng)格的。這些微指令放到一個微指令緩沖區(qū)里面,然后再從緩沖區(qū)里面,分發(fā)給到后面的超標量,并且是亂序執(zhí)行的流水線架構(gòu)里面。

缺點是需要更復(fù)雜的電路和更長的譯碼時間。

3、圖形渲染的流程

圖像進行實時渲染的過程,可以被分解成下面這樣 5 個步驟:

頂點處理(Vertex Processing)

圖元處理(Primitive Processing)

柵格化(Rasterization)

片段處理(Fragment Processing)

像素操作(Pixel Operations)

這一連串的過程,也被稱之為圖形流水線或者渲染管線。

4、圖形加速卡(GPU)

圖形渲染的流程是固定的,那我們直接用硬件來處理這部分過程,因為整個計算流程是完全固定的,不需要流水線停頓、亂序執(zhí)行等等的各類導(dǎo)致 CPU 計算變得復(fù)雜的問題。也不需要有什么可編程能力,只要讓硬件按照寫好的邏輯進行運算就好了。

5、現(xiàn)代 GPU 的三個核心創(chuàng)意

(1)芯片瘦身

CPU中拿來實現(xiàn)處理亂序執(zhí)行、進行分支預(yù)測,以及高速緩存部分,GPU 里不需要,GPU 的整個處理過程是一個流式處理(Stream Processing)的過程。因為沒有那么多分支條件,或者復(fù)雜的依賴關(guān)系,可以把 GPU 里這些對應(yīng)的電路都可以去掉。只留下取指令、指令譯碼、ALU 以及執(zhí)行這些計算需要的寄存器和緩存就好了。

(2)多核并行和 SIMT

這樣一來, GPU 電路就比 CPU 簡單很多了。就可以在一個 GPU 里面,塞很多個這樣并行的 GPU 電路來實現(xiàn)計算,就好像 CPU 里面的多核 CPU 一樣。和 CPU 不同的是,我不需要單獨去實現(xiàn)什么多線程的計算。因為 GPU 的運算是天然并行的。

CPU 里有一種叫作 SIMD 的處理技術(shù)。這個技術(shù)是說,在做向量計算的時候,要執(zhí)行的指令是一樣的,只是同一個指令的數(shù)據(jù)有所不同而已。在 GPU 的渲染管線里,這個技術(shù)可就大有用處了。

GPU 就借鑒了 CPU 里面的 SIMD,用了一種叫作SIMT(Single Instruction,Multiple Threads)的技術(shù)。SIMT 呢,比 SIMD 更加靈活。在 SIMD 里面,CPU 一次性取出了固定長度的多個數(shù)據(jù),放到寄存器里面,用一個指令去執(zhí)行。而 SIMT,可以把多條數(shù)據(jù),交給不同的線程去處理。各個線程里面執(zhí)行的指令流程是一樣的,但是可能根據(jù)數(shù)據(jù)的不同,走到不同的條件分支。這樣,相同的代碼和相同的流程,可能執(zhí)行不同的具體的指令。這個線程走到的是 if 的條件分支,另外一個線程走到的就是 else 的條件分支了。GPU 設(shè)計就可以進一步進化,也就是在取指令和指令譯碼的階段,取出的指令可以給到后面多個不同的 ALU 并行進行運算。這樣,我們的一個 GPU 的核里,就可以放下更多的 ALU,同時進行更多的并行運算了。


(3)GPU 里的“超線程”

GPU 里的指令,可能會遇到和 CPU 類似的“流水線停頓”問題。遇到停頓的時候,調(diào)度一些別的計算任務(wù)給當前的 ALU。要針對這個任務(wù),提供更多的執(zhí)行上下文。


GPU 里面的多核、多 ALU,加上多 Context,使得它的并行能力極強。同樣架構(gòu)的 GPU,如果光是做數(shù)值計算的話,算力在同樣價格的 CPU 的十倍以上。而這個強大計算能力,以及“統(tǒng)一著色器架構(gòu)”,使得 GPU 非常適合進行深度學(xué)習(xí)的計算模式,也就是海量計算,容易并行,并且沒有太多的控制分支邏輯。

使用 GPU 進行深度學(xué)習(xí),往往能夠把深度學(xué)習(xí)算法的訓(xùn)練時間,縮短一個,乃至兩個數(shù)量級。而 GPU 現(xiàn)在也越來越多地用在各種科學(xué)計算和機器學(xué)習(xí)上,而不僅僅是用在圖形渲染上了。

總結(jié)

以上是生活随笔為你收集整理的计算机组成原理7-CISC和RISC、GPU的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。