顯卡、GPU和CUDA簡介


http://blog.csdn.net/wu_nan_nan/article/details/45603299

聲明:
本文部分內容來自網絡。由於知識有限,有錯誤的地方還請指正。本帖為自己學習過程的記錄帖,如果對您有幫助,我將榮幸之至。歡迎和我一起討論,聯系方式: 新浪微博 @躺在草原看夕陽。
 
什么是顯卡?
    顯卡(Video card,Graphics card)全稱顯示接口卡,又稱顯示適配器,是計算機最基本配置、最重要的配件之一。就像電腦聯網需要網卡,主機里的數據要顯示在屏幕上就需要顯卡。因此,顯卡是電腦進行數模信號轉換的設備,承擔輸出顯示圖形的任務。具體來說, 顯卡接在電腦主板上,它將電腦的數字信號轉換成模擬信號讓顯示器顯示出來
    原始的顯卡一般都是集成在主板上,只完成最基本的信號輸出工作,並不用來處理數據。隨着顯卡的迅速發展,就出現了GPU的概念,顯卡也分為獨立顯卡和集成顯卡(見附1)。
 
什么是GPU?
    GPU這個概念是由Nvidia公司於1999年提出的。GPU是顯卡上的一塊芯片,就像CPU是主板上的一塊芯片。那么1999年之前顯卡上就沒有GPU嗎?當然有,只不過那時候沒有人給它命名,也沒有引起人們足夠的重視,發展比較慢。
    自Nvidia提出GPU這個概念后,GPU就進入了快速發展時期。簡單來說,其經過了以下幾個階段的發展:
1) 僅用於圖形渲染,此功能是GPU的初衷,這一點從它的名字就可以看出:Graphic Processing Unit,圖形處理單元;
2)后來人們發現,GPU這么一個強大的器件只用於圖形處理太浪費了,它應該用來做更多的工作,例如浮點運算。怎么做呢?直接把浮點運算交給GPU是做不到的,因為它只能用於圖形處理(那個時候)。最容易想到的,是把浮點運算做一些處理,包裝成圖形渲染任務,然后交給GPU來做。這就是 GPGPU(General Purpose GPU)的概念。不過這樣做有一個缺點,就是你必須有一定的圖形學知識,否則你不知道如何包裝。
3)於是,為了讓不懂圖形學知識的人也能體驗到GPU運算的強大,Nvidia公司又提出了CUDA的概念。
 
什么是CUDA?
    CUDA(Compute Unified Device Architecture),通用並行計算架構,是一種運算平台。它包含CUDA指令集架構以及GPU內部的並行計算引擎。你只要使用一種類似於C語言的 CUDA C語言,就可以開發CUDA程序,從而可以更加方便的利用GPU強大的計算能力,而不是像以前那樣先將計算任務包裝成圖形渲染任務,再交由GPU處理。
注意,並不是所有GPU都支持CUDA。
 
CPU和GPU的關系
    在沒有GPU之前,基本上所有的任務都是交給CPU來做的。有GPU之后,二者就進行了分工, CPU負責邏輯性強的事物處理和串行計算,GPU則專注於執行高度線程化的並行處理任務(大規模計算任務)。為什么這么分工?這是由二者的硬件構成決定的。
    可以看出, CPU是“主(host)”而GPU是“從(device)”,GPU無論發展得多快,都只能是替CPU分擔工作,而不是取代CPU。
 
附1: 獨立顯卡和集成顯卡的區別。
    所謂集成,是指顯卡集成在主板上,不能隨意更換。而獨立顯卡是作為一個獨立的器件插在主板的AGP接口上的,可以隨時更換升級。
    另外,集成顯卡使用物理內存,而獨立顯卡有自己的顯存。一般而言,同期推出的獨立顯卡的性能和速度要比集成顯卡好、快。
    值得一提的是,集成顯卡和獨立顯卡都是有GPU的。
 
附2:Nvidia顯卡分類。
GeForce系列:家庭娛樂。打游戲必備;
Quadro系列:專業繪圖設計。視頻渲染,經常使用3ds Max、Maya等軟件的必備。
Tesla系列:高端顯卡,用於大規模的並行計算。土豪必備。
    另外,目前比較流行的物理引擎PhysX,並不是所有顯卡都支持。官方文檔上說GeForce 8及之后的顯卡都支持。
 
結束語:
CUDA知識一種並行計算架構,相關的概念還有OpenCL、OpenMP等。我們下期再介紹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM