扛起CUDA大旗 GeForce GTX 200深入評測

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

讓NVIDIA野心勃勃的CUDA

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

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

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

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

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

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

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

  ·CUDA是什么?

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

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

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

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

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

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

GTX 280和Penryn的核心對比圖

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

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