Nvidia和它家的Cuda和CUDNN


參考:英偉達 (NVIDIA) 創始人黃仁勛是一個什么樣的人?

侵刪

筆記:

  1. 主要看Techsoho的回答
  2. David Kirk博士是圖形學和高性能並行計算的大神,除了做顯卡,他另一大貢獻就是搞出了CUDA,被譽為CUDA之父,后當選美國工程院院士。
  3. 隨着顯卡的發展,GPU(圖形處理器)越來越強大,而且GPU為顯示圖像做了優化,在計算上已經超越了通用的CPU,特別擅長並行計算。圖形運算的特點是大量同類型數據的密集運算。GPU的微架構就是面向適合於矩陣類型的數值計算而設計的,如此強大的芯片如果只是作為顯卡就太浪費了。
  4. 但在CUDA問世之前,對GPU編程必須要編寫大量的底層語言代碼,是程序員不折不扣的噩夢。
  5. David Kirk慧眼識珠,在他的主導下,英偉達推出CUDA,讓顯卡可以用於通用並行計算等其他非圖形計算。
  6. CUDA是英偉達利用GPU平台進行通用並行計算的一種架構,簡單的說,就是普通程序員可以利用C語言、C++等為CUDA架構編寫程序在GPU平台上進行大規模並行計算,就是讓普通程序員也能用上核武器。
  7. 2007年英偉達推出專為高性能計算而設計的Tesla GPU,此后很多年,在高性能並行計算領域,無人可與英偉達匹敵,Intel和AMD都被虐成渣。
  8. CUDA和GPU計算被廣泛應用於金融交易、生物醫療、地理信息系統、天氣預報、國防等需要高性能計算的領域,而NVIDIA Tesla GPU也占據了70%的GPU市場。
  9. 深度學習神經網絡尤其是幾百上千層的神經網絡需對高性能計算需求非常高,GPU對處理復雜運算擁有天然的優勢:它有出色的並行矩陣計算能力,對於神經網絡的訓練和分類都可以提供顯著的加速效果。所以搭載GPU的超級計算機已經成為訓練各種深度神經網絡的不二選擇,比如谷歌大腦早期就是使用英偉達的GPU做深度學習。

 

參考:gpu 的驅動,cuda,cudnn的關系

筆記:

  1. CUDA(Compute Unified Device Architecture),是顯卡廠商NVIDIA推出的運算平台。 CUDA是一種由NVIDIA推出的通用並行計算架構。它包含CUDA指令集架構以及GPU內部的並行計算引擎。你只要使用一種類似於C語言的CUDA C語言,就可以開發CUDA程序,從而可以更加方便的利用GPU強大的計算能力,而不是像以前那樣先將計算任務包裝成圖形渲染任務,再交由GPU處理。

  2. 換句話說CUDA是NVIDIA推出的用於自家GPU的並行計算框架,也就是說CUDA只能在NVIDIA的GPU上運行,而且只有當要解決的計算問題是可以大量並行計算的時候才能發揮CUDA的作用。並不是所有GPU都支持CUDA。

  3. CUDA提供了一個深度神經網絡的GPU加速庫cuDNN(CUDA Deep Neural Network),完成了對卷積、池化、歸一化和激活函數層等標准操作的快速實現。
  4. NVIDIA cuDNN是用於深度神經網絡的GPU加速庫。它強調性能、易用性和低內存開銷。NVIDIA cuDNN可以集成到更高級別的機器學習框架中,如谷歌的Tensorflow、加州大學伯克利分校的流行caffe軟件。簡單的插入式設計可以讓開發人員專注於設計和實現神經網絡模型,而不是簡單調整性能,同時還可以在GPU上實現高性能現代並行計算。如果你要用GPU訓練模型,cuDNN不是必須的,但是一般會采用這個加速庫。

  5. CUDA與CUDNN的關系?CUDA看作是一個工作台,上面配有很多工具,如錘子、螺絲刀等。cuDNN是基於CUDA的深度學習GPU加速庫,有了它才能在GPU上完成深度學習的計算。它就相當於工作的工具,比如它就是個扳手。但是CUDA這個工作台買來的時候,並沒有送扳手。想要在CUDA上運行深度神經網絡,就要安裝cuDNN,就像你想要擰個螺帽就要把扳手買回來。這樣才能使GPU進行深度神經網絡的工作,工作速度相較CPU快很多。

 


免責聲明!

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



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