扛起CUDA大旗 GeForce GTX 200深入評(píng)測(cè)

讓NVIDIA野心勃勃的CUDA
來(lái)源:超能網(wǎng) 更新日期:2008-06-20 作者:佚名
內(nèi)容導(dǎo)航:  分頁(yè)瀏覽 | 全文瀏覽

讓NVIDIA野心勃勃的CUDA

可以應(yīng)用GPU Computing的環(huán)境,異構(gòu)計(jì)算具有強(qiáng)大威力

  ·GPU+CPU異構(gòu)運(yùn)算概述
 
  異構(gòu)運(yùn)算(heterogeneous computing)的想法是這樣的,通過(guò)使用計(jì)算機(jī)上的主要處理器,如CPU以及GPU來(lái)讓程序得到更高的運(yùn)算性能。一般來(lái)說(shuō),CPU由于在分支處理以及隨機(jī)內(nèi)存讀取方面有優(yōu)勢(shì),在處理串聯(lián)工作方面是好手。在另一方面,GPU由于其特殊的核心設(shè)計(jì),在處理大量有浮點(diǎn)運(yùn)算的并行運(yùn)算時(shí)候有著天然的優(yōu)勢(shì)。完全使用計(jì)算機(jī)性能實(shí)際上就是使用CPU來(lái)做串聯(lián)工作,而GPU負(fù)責(zé)并行運(yùn)算,簡(jiǎn)單來(lái)講,異構(gòu)運(yùn)算就是“使用合適的工具做合適的事情”。

  那么什么程序是以串聯(lián)工作為主而什么程序又是以并行的運(yùn)算為主呢?其實(shí)只有很少很少的程序使用純粹的串聯(lián)或者并行的,大部分程序同時(shí)需要兩種運(yùn)算形式。編譯器、文字處理軟件、瀏覽器、e-mail客戶端等都是典型的串聯(lián)運(yùn)算形式的程序。而視頻播放,視頻壓制,圖片處理,科學(xué)運(yùn)算,物理模擬以及3D圖形處理(Raytracing及光柵化)這類型的應(yīng)用就是典型的并行處理程序。

  CUDA是業(yè)界的首款并行運(yùn)算語(yǔ)言,而且其非常普及化,目前有高達(dá)7千萬(wàn)的PC用戶可以支持該語(yǔ)言,以下三大特點(diǎn)讓GTX 280能夠完全勝任并行運(yùn)算:

  ·GPU運(yùn)算架構(gòu):GTX280的核心是為并行運(yùn)算所設(shè)計(jì)的,包含了各種有利于并行運(yùn)算的特性,如共享緩存設(shè)計(jì),Atomic操作以及雙精度浮點(diǎn)計(jì)算的支持。

  ·大量核心設(shè)計(jì):具有240個(gè)運(yùn)行在1.3GHz的微型核心,GTX280可以說(shuō)是PC上進(jìn)行浮點(diǎn)運(yùn)算的利器。

  ·大型帶寬設(shè)計(jì):由于數(shù)據(jù)的吞吐量大,圖形運(yùn)算程序的效率被CPU上的帶寬瓶頸給卡住了,由于GTX280上有8個(gè)處于核心內(nèi)部的顯存控制器,GTX 280的顯存帶寬能夠達(dá)到142GB/s,大量提高了基于顯卡的高清視頻壓縮、物理模擬以及圖像處理程序的效率。

  ·CUDA是什么?

CUDA提供了硬件的直接訪問(wèn)接口,不必依賴圖形API

  CUDA(Compute Unified Device Architecture)是一個(gè)新的基礎(chǔ)架構(gòu),這個(gè)架構(gòu)可以使用GPU來(lái)解決商業(yè)、工業(yè)以及科學(xué)方面的復(fù)雜計(jì)算問(wèn)題。它是一個(gè)完整的GPGPU解決方案,提供了硬件的直接訪問(wèn)接口,而不必像傳統(tǒng)方式一樣必須依賴圖形API接口來(lái)實(shí)現(xiàn)GPU的訪問(wèn)。在架構(gòu)上采用了一種全新的計(jì)算體系結(jié)構(gòu)來(lái)使用GPU提供的硬件資源,從而給大規(guī)模的數(shù)據(jù)計(jì)算應(yīng)用提供了一種比CPU更加強(qiáng)大的計(jì)算能力。CUDA采用C語(yǔ)言作為編程語(yǔ)言提供大量的高性能計(jì)算指令開(kāi)發(fā)能力,使開(kāi)發(fā)者能夠在GPU的強(qiáng)大計(jì)算能力的基礎(chǔ)上建立起一種效率更高的密集數(shù)據(jù)計(jì)算解決方案。

  GPGPU使用圖形的API如DirectX或者OpenGL來(lái)進(jìn)行運(yùn)算,這將需要編程人員擁有大量的圖形API以及硬件相關(guān)技術(shù)。而且,編程架構(gòu)也收到了隨機(jī)讀取寫入以及線程配合的限制。編寫并行運(yùn)算的程序很復(fù)雜,因?yàn)樗婕暗绞褂么罅緾PU作為同一個(gè)簇共同工作的問(wèn)題。有的桌面程序由于比較難把單一線程的工作量分配給不同線程工作,需要減慢速度才能和多核CPU配合上,這是由于CPU本來(lái)就是一個(gè)串行的處理器,大量的CPU需要一個(gè)非常復(fù)雜的軟件與其相配合工作。

  CUDA去除了這種需要手動(dòng)管理平行處理的障礙,使用CUDA為基礎(chǔ)編寫的程序?qū)嶋H上仍然為一個(gè)串行的程序。

  ·核心架構(gòu):GPU VS CPU

  • 設(shè)計(jì)目的:CPU核心設(shè)計(jì)是越快越好地處理處理線性指令。而GPU的核心設(shè)計(jì)為越快越好地同時(shí)處理多個(gè)流指令。
  • 晶體管:CPU內(nèi)使用的晶體管大部分被用來(lái)作成指令緩存,等待分配中心,硬件分支預(yù)測(cè)甚至是大型的核心內(nèi)緩存。這些特性讓其在處理單線程任務(wù)時(shí)獲得高速的性能。GPU內(nèi)大量的晶體管都被用作處理器陣列,多重線程處理部分,共享型緩存以及數(shù)個(gè)顯存管理器。這些特性并不能加速某個(gè)特定線程的處理速度,而是為了千百個(gè)線程同時(shí)運(yùn)作,優(yōu)化線程間通訊,以及保持高速顯存帶寬而設(shè)計(jì)的。
  • 緩存:CPU使用緩存來(lái)減少與內(nèi)存之間的延時(shí)問(wèn)題。GPU使用緩存(或者軟件控制的共享緩存)來(lái)加大帶寬
  • 延時(shí)管理:CPU使用大緩存和分支預(yù)測(cè)部分來(lái)處理CPU和其他部分之間的延時(shí)。這使用了大量的核心空間,同樣也導(dǎo)致了能源消耗量大的問(wèn)題。GPU利用同時(shí)處理大量線程的優(yōu)勢(shì)來(lái)解決延時(shí)問(wèn)題。如果某個(gè)線程正在等待從顯存返回的信息,GPU能夠?qū)⑵淞⒖剔D(zhuǎn)向處理其他信息,中間不消耗任何時(shí)間差。
  • 多線程處理:CPU的每一個(gè)核心支持單線程或者雙線程。而支持CUDA的GPU內(nèi)每一個(gè)SM(Streaming multiprocessor)都支持多達(dá)1024個(gè)線程。所以在切換線程的時(shí)候GPU是無(wú)需浪費(fèi)額外的運(yùn)算時(shí)間。
  • SIMD VS SIMT:CPU使用SIMD(single instruction, multiple data)單元來(lái)進(jìn)行向量處理。而GPU使用SIMT(single instruction multiple thread)來(lái)進(jìn)行可拓展的線程處理,SIMT并不需要編程者來(lái)把信息轉(zhuǎn)換成向量處理所需的形式而且它也允許線程的任意分支。
  • 顯存控制器:Intel CPU 目前并沒(méi)有將內(nèi)存控制器整合到核心內(nèi),而支持CUDA的GPU整合了8個(gè)核心內(nèi)的顯存控制器,如此一來(lái)和CPU相比GPU就擁有了多達(dá)10倍的內(nèi)存/顯存帶寬。

GTX 280和Penryn的核心對(duì)比圖

  NVIDIA正是想憑借GTX 200強(qiáng)大的計(jì)算能力以及CUDA這個(gè)架構(gòu),將計(jì)算機(jī)轉(zhuǎn)變成一個(gè)以GPU為計(jì)算中心的平臺(tái)。

 標(biāo)簽:
上一頁(yè) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 下一頁(yè)
廣告聯(lián)系:010-82755684 | 010-82755685 手機(jī)版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時(shí)代網(wǎng) 版權(quán)所有 關(guān)于投影時(shí)代 | 聯(lián)系我們 | 歡迎來(lái)稿 | 網(wǎng)站地圖
返回首頁(yè) 網(wǎng)友評(píng)論 返回頂部 建議反饋
快速評(píng)論
驗(yàn)證碼: 看不清?點(diǎn)一下
發(fā)表評(píng)論