CUDA和OpenCL的區別

2021-09-30 12:29:23 字數 951 閱讀 9651

從很多方面來看,cuda和opencl的關係都和directx與opengl的關係很相像。如同directx和opengl一樣,cuda和opencl中,前者是配備完整工具包、針對單一**商(nvidia)的成熟的開發平台,後者是乙個開放的標準。 

雖然兩者抱著相同的目標:通用平行計算。但是cuda僅僅能夠在nvidia的gpu硬體上執行,而opencl的目標是面向任何一種massively parallel processor,期望能夠對不同種類的硬體給出乙個相同的程式設計模型。由於這一根本區別,二者在很多方面都存在不同: 

1)開發者友好程度。cuda在這方面顯然受更多開發者青睞。原因在於其統一的開發套件(cuda toolkit, nvidia gpu computing sdk以及nsight等等)、非常豐富的庫(cufft, cublas, cusparse, curand, npp, thrust)以及nvcc(nvidia的cuda編譯器)所具備的ptx(一種ssa中間表示,為不同的nvidia gpu裝置提供一套統一的靜態isa)**生成、離線編譯等更成熟的編譯器特性。相比之下,使用opencl進行開發,只有amd對opencl的驅動相對成熟。 

2)跨平台性和通用性。這一點上opencl占有很大優勢(這也是很多national laboratory使用opencl進行科學計算的最主要原因)。opencl支援包括ati,nvidia,intel,arm在內的多類處理器,並能支援執行在cpu的並行**,同時還獨有task-parallel execution mode,能夠更好的支援heterogeneous computing。這一點是僅僅支援資料級並行並僅能在nvidia眾核處理器上執行的cuda無法做到的。 

3)市場占有率。作為乙個開放標準,缺少背後公司的推動,opencl顯然沒有佔據通用平行計算的主流市場。nvidia則憑藉cuda在科學計算、生物、金融等領域的推廣牢牢把握著主流市場。再次想到opengl和directx的對比,不難發現公司推廣的高效和非盈利機構/標準委員會的低效。

CUDA和OpenCL異同點比較

對cuda和opencl有一定的程式設計經驗,但是細心的人可以發現,opencl就是仿照cuda來做的。既然兩個gpu的程式設計框架如此相像,那麼他們究竟有什麼不同呢?下面就一一道來。opencl採用的資料並行模型就是採用cuda的資料並行模型。下面的 反應了cuda和opencl並行模型之間的對映...

CUDNN CUDA和OpenCL的區別

gpu graphics processing unit 即圖形處理器 gpgpu全稱general purpose gpu,即通用計算圖形處理器。其中第乙個 gp 通用目的 generalpurpose 而第二個 gp 則表示圖形處理 graphicprocess pooling的前向後向過程 s...

CUDA和CUDNN的安裝

2.cudnn 驗證選擇相應版本後 linux x86 64 ubuntu 18.04 runfile local 給.run檔案賦執行許可權 chmod x cuda run sudo cuda run閱讀說明可以直接ctrl c跳過 第二個選項安裝驅動選no 之前已經安裝好了 其餘全部accep...