乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      1.1.3 CPU+GPU異構(gòu)并行

       昵稱17588304 2014-07-22

      1.1.3  CPU+GPU異構(gòu)并行

      目前主流計算機的處理能力主要來自CPU和GPU。CPU與GPU一般經(jīng)北橋 通過AGP或者PCI-E總線連接,各自有獨立的外部存儲器,分別是內(nèi)存和顯存。在一些芯片組中使用的集成GPU沒有采用獨立的顯存芯片,直接從內(nèi)存中分出一塊區(qū)域作為顯存。Intel和AMD提出的CPU-GPU融合產(chǎn)品還準(zhǔn)備直接將CPU和GPU通過QPI或者HT總線連接,集成在一塊芯片內(nèi)??梢灶A(yù)見,受面積、功耗和散熱的限制,此類融合產(chǎn)品不大可能集成性能很高的GPU,并且有可能不為GPU提供獨立顯存。

      傳統(tǒng)的CPU+GPU異構(gòu)并行處理的典型任務(wù)是圖形實時渲染。在這類應(yīng)用中,CPU負責(zé)根據(jù)用戶的輸入和一定的規(guī)則(如游戲的AI)確定在下一幀需要顯示哪些物體,以及這些物體的位置,再將這些信息傳遞給GPU,由GPU繪制這些物體并進行顯示。兩者的計算是并行的:在GPU繪制當(dāng)前幀的時候,CPU可以計算下一幀需要繪制的內(nèi)容。

      在這些處理中,CPU負責(zé)的是邏輯性較強的事務(wù)計算,GPU則負責(zé)計算密集度高的圖形渲染。為了滿足事務(wù)計算的需要,CPU的設(shè)計目標(biāo)是使執(zhí)行單元能夠以很低的延遲獲得數(shù)據(jù)和指令,因此采用了復(fù)雜的控制邏輯和分支預(yù)測,以及大量的緩存來提高執(zhí)行效率;而GPU必須在有限的面積上實現(xiàn)很強的計算能力和很高的存儲器帶寬,因此需要大量執(zhí)行單元來運行更多相對簡單的線程,在當(dāng)前線程等待數(shù)據(jù)時就切換到另一個處于就緒狀態(tài)等待計算的線程。簡而言之,CPU對延遲將更敏感,而GPU則側(cè)重于提高整體的數(shù)據(jù)吞吐量。CPU和GPU的設(shè)計目標(biāo)的不同決定了兩者在架構(gòu)和性能上的巨大差異,具體來說有:

      1.CPU線程與GPU線程

      CPU的一個核心通常在一個時刻只能運行一個線程的指令。CPU的多線程機制通過操作系統(tǒng)提供的API實現(xiàn),是一種軟件粗粒度多線程。當(dāng)一個線程中斷,或者等待某種資源時,操作系統(tǒng)就保存當(dāng)前線程的上下文,并裝載另外一個線程的上下文。這種機制使得CPU切換線程的代價十分高昂,通常需要數(shù)百個時鐘周期。某些具有超線程功能的CPU可以將一個物理核心虛擬成多個核心,但每個虛擬核心在一個時刻也只能運行一個線程。

      GPU采用的則是由硬件管理的輕量級線程,可以實現(xiàn)零開銷的線程切換。線程的切換在這里成為一件好事:當(dāng)一個線程因為訪問片外存儲器或者同步指令開始等待以后,可以立即切換到另外一個處于就緒態(tài)的線程,用計算來隱藏延遲。當(dāng)線程中的計算指令需要的時間較多,而訪存相對較少,即計算密集度比較高時,延遲就可以被計算隱藏,而且線程越多,延遲隱藏得更好。

      2.多核與眾核

      當(dāng)前的主流CPU中一般有2~8個核心,每個核心中有3~6條執(zhí)行流水線。這些核心極采用了很多提高指令級并行的技術(shù),如超標(biāo)量超深流水線、亂序執(zhí)行、預(yù)測執(zhí)行,以及大容量緩存等,也采用了如SSE、3Dnow!一類的數(shù)據(jù)級并行技術(shù)。由于緩存和控制邏輯需要很大面積,因此在一塊芯片上能夠集成的核心數(shù)量也就被限制了。

      當(dāng)前的NVIDIA GPU中有1~30個包含完整前端的流多處理器,每個流多處理器可以看成一個包含8個1D流處理器的SIMD處理器。CUDA就利用了多個流多處理器間的粗粒度任務(wù)級或數(shù)據(jù)級并行,以及流多處理器內(nèi)的細粒度數(shù)據(jù)并行。

      盡管GPU的運行頻率低于GPU,但更多的執(zhí)行單元數(shù)量還是使GPU能夠在浮點處理能力上獲得優(yōu)勢,即使是芯片組里集成的低端GPU,在單精度浮點處理能力上也能和主流的CPU打成平手,而主流GPU的性能則可以達到同時期主流CPU性能的10倍左右,如圖1-4所示。

        

      3.外部存儲器

      GT200 GPU的顯存帶寬達到了140GB/s,是同時期CPU最高內(nèi)存帶寬的5倍,圖1-5是CPU與GPU同期帶寬的比較。造成GPU與CPU外部存儲器帶寬差異的主要原因有兩個:

         

      首先,顯存中使用的GDDR存儲器顆粒與內(nèi)存的DDR存儲器顆粒在技術(shù)上基本相同,但顯存顆粒是直接固化在顯卡的PCB板上的,而內(nèi)存則為了兼顧可擴展性的需要,必須通過DIMM插槽與主板相連。直接焊在PCB板上的顯存的信號完整性問題比通過插槽連接的內(nèi)存更容易解決,顯存的工作頻率也通常比使用相同技術(shù)的內(nèi)存要高一些。

      其次,目前的CPU存儲器控制器一般基于雙通道或者三通道技術(shù)的,每個通道位寬64bit;而GPU中則存在數(shù)個存儲器控制單元,例如GTX280 GPU中就有8個存儲器控制器,每個控制兩片位寬32bit的顯存芯片,使總的存儲器位寬達到512bit。這樣,盡管內(nèi)存中的DDR存儲器顆粒比顯卡上的GDDR存儲器顆粒還要多,但CPU能夠同時訪問的存儲器顆粒反而少于GPU。

      4.緩存

      CPU中的緩存主要用于減小訪存延遲和節(jié)約帶寬。緩存在多線程環(huán)境下會發(fā)生失效反應(yīng):在每次線程上下文切換之后,都需要重建緩存上下文,一次緩存失效的代價是幾十到上百個時鐘周期。同時,為了實現(xiàn)緩存與內(nèi)存中數(shù)據(jù)的一致性,還需要復(fù)雜的邏輯進行控制。

      在GPU中則沒有復(fù)雜的緩存體系與替換機制。GPU緩存是只讀的,因此也不用考慮緩存一致性問題。GPU緩存的主要功能是用于過濾對存儲器控制器的請求,減少對顯存的訪問。所以GPU上緩存的主要功能不是減小訪存延遲,而是節(jié)約顯存帶寬。

      從上面的分析可以看出,GPU的主要設(shè)計目標(biāo)是以大量線程實現(xiàn)面向吞吐量的數(shù)據(jù)并行計算,適合于處理計算密度高、邏輯分支簡單的大規(guī)模數(shù)據(jù)并行任務(wù)。而CPU則有復(fù)雜的控制邏輯和大容量的緩存減小延遲,能夠適應(yīng)各種不同的情況,尤其擅長復(fù)雜邏輯運算。使用GPU處理數(shù)據(jù)并行任務(wù),而由CPU進行復(fù)雜邏輯和事務(wù)處理等串行計算,就可以最大限度地利用計算機的處理能力,實現(xiàn)桌面上的超級計算。CPU+GPU并行不只是計算能力的提高,也不只是節(jié)省了成本和能源;將高性能計算普及到桌面,使得許多以往不可能的應(yīng)用成為了現(xiàn)實,這種靈活性本身就是一種革命性的進步。

      【責(zé)任編輯:董書 TEL:(010)68476606】

      回書目   上一節(jié)   下一節(jié)

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多