日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPU---并行计算利器

發布時間:2025/4/16 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPU---并行计算利器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請引用:GPU---并行計算利器

源于阿里巴巴CCO《猿來如此》分享

1?GPU是什么

? ? ? 如圖1所示,這臺PC機與普通PC機不同的是這里插了7張顯卡,左下角是顯卡,在中間的就是GPU芯片。顯卡的處理器稱為圖形處理器(GPU),它是顯卡的“心臟”,與CPU類似,只不過GPU是專為執行復雜的數學和幾何計算而設計的。

? ? ? GPU計算能力非常強悍,舉個例子:現在主流的i7處理器的浮點計算能力是主流的英偉達GPU處理器浮點計算能力的1/12。

圖1 顯卡與GPU

2 為什么GPU計算能力如此強悍?

? ? ? ?圖2對CPU與GPU中的邏輯架構進行了對比。其中Control是控制器、ALU算術邏輯單元、Cache是cpu內部緩存、DRAM就是內存。可以看到GPU設計者將更多的晶體管用作執行單元,而不是像CPU那樣用作復雜的控制單元和緩存。從實際來看,CPU芯片空間的5%是ALU,而GPU空間的40%是ALU。這也是導致GPU計算能力超強的原因。

圖2 cpu和gpu硬件邏輯結構對比

?

? ? ? 那有人講了,為什么cpu不像gpu那樣設計呢,這樣計算能力也強悍了!

? ? ? 為什么?CPU要做得很通用。CPU需要同時很好的支持并行和串行操作,需要很強的通用性來處理各種不同的數據類型,同時又要支持復雜通用的邏輯判斷,這樣會引入大量的分支跳轉和中斷的處理。這些都使得CPU的內部結構異常復雜,計算單元的比重被降低了。而GPU面對的則是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境。因此GPU的芯片比CPU芯片簡單很多。

? ? ? 舉個例子,假設有一堆相同的加減乘除計算任務需要處理,那把這個任務交給一堆(幾十個)小學生就可以了,這里小學生類似于GPU的計算單元,而對一些復雜的邏輯推理等問題,比如公式推導、科技文章寫作等高度邏輯化的任務,交給小學生顯然不合適,這時大學教授更適合,這里的大學教授就是CPU的計算單元了,大學教授當然能處理加減乘除的問題,單個教授計算加減乘除比單個小學生計算速度更快,但是成本顯然高很多。

3 GPU編程庫

? ? ? ?GPU計算能力這么強,被廣泛使用!比如挖礦(比特幣)、圖形圖像處理、數值模擬、機器學習算法訓練等等,那我們怎么發揮GPU超強的計算能力呢?---編程!

? ? ? ?怎么進行GPU編程呢?現在GPU形形色色,比如Nvidia、AMD、Intel都推出了自己的GPU,其中最為流行的就是Nvidia的GPU,其還推出了CUDA并行編程庫。然而每個GPU生產公司都推出自己的編程庫顯然讓學習成本上升很多,因此蘋果公司就推出了標準OpenCL,說各個生產商都支持我的標準,只要有一套OpenCL的編程庫就能對各類型的GPU芯片適用。當然了,OpenCL做到通用不是沒有代價的,會帶來一定程度的性能損失,在Nvidia的GPU上,CUDA性能明顯比OpenCL高出一大截。目前CUDA和OpenCL是最主流的兩個GPU編程庫。

? ? ? 從編程語言角度看,CUDA和OpenCL都是原生支持C/C++的,其它語言想要訪問還有些麻煩,比如Java,需要通過JNI來訪問CUDA或者OpenCL。基于JNI,現今有各種Java版本的GPU編程庫,比如JCUDA等。另一種思路就是語言還是由java來編寫,通過一種工具將java轉換成C。

圖3 GPU編程庫

LWJGL (http://www.lwjgl.org/) JOCL (http://www.jocl.org/) JCUDA (http://www.jcuda.de/) Aparapi (http://code.google.com/p/aparapi/) JavaCL (http://code.google.com/p/javacl/)

4?CUDA程序流程

圖4 CUDA程序流程

5 實踐---以圖像處理為例

? ? ? ? 假設我們有如下圖像處理任務,給每個像素值加1。并行方式很簡單,為每個像素開一個GPU線程,由其進行加1操作。

圖5 例子

圖6 核函數

圖7 主流程函數

6 GPU加速效果

? ? ? ? 下圖是我實現的基于CUDA的P&D DEM圖像預處理算法使用GPU的加速效果,GeForce GT 330是塊普通臺式機上的顯卡,現在價格也就500人民幣左右,用它達到了20倍的加速比,Tesla M2075是比較專業的顯卡,價格一萬左右,用它達到了將近百倍的加速比,這個程序i7 CPU單進程單線程要跑2個小時,而用Tesla M2075?GPU只花了一分多鐘就完成計算。

圖8 P&D DEM圖像預處理算法加速效果

?

?

?

轉載于:https://www.cnblogs.com/LBSer/p/4592862.html

總結

以上是生活随笔為你收集整理的GPU---并行计算利器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。