1. 程式人生 > >MATLAB GPU加速

MATLAB GPU加速

以前使用matlab

的時候,很多人都用過裡面的並行工具箱,用的最多的應該就是parfor。實際上,matlab裡面已經有不少工具箱裡面都有了支援GPU加速的函式。使用matlab+GPU加速的前提是,機器必須安裝了支援CUDA的顯示卡,而且CUDA驅動的版本在1.3以上。一些比較常用的函式

例如fft,ifft,三角函式,相關函式xcorr以及常用的運算子等等都可以進行加速。方法也很簡單,主要使用到gpuArray和gather這兩個函式。

以xcorr為例,假設我們要求向量A和B的互相關,一般是使用程式碼

M = xcorr(A,B)

以下是使用gpu加速的版本

Ag = gpuArray(A);

Bg = gpuArray(B);

Mg = xcorr(Ag,Bg);

M = gather(Mg);

一般的小矩陣可能感覺不出來,不過如果矩陣規模很大,而且在多次迴圈內部,這個區別就很明顯了。mathwork的網站上有對xcorr的gpu加速效率的詳細分析報告,基本上,隨著矩陣規模擴大,gpu加速的倍數是直線上升。

除了相關函式,還有很多支援gpuArray資料型別的函式,具體可以用下面的指令檢視

methods('gpuArray')

其中某個函式的說明可以用help檢視

help gpuArray/functionname

上面的例子中,gpuArray是把資料轉換為GPU處理的型別,儲存到GPU的視訊記憶體裡。gather是將資料轉移回來。除了將現有的矩陣轉移到GPU中,gpuArray自帶的方法還可以直接在GPU中建立資料:

gpuArray.ones

gpuArray.colon

gpuArray.zeros

gpuArray.rand

gpuArray.inf

gpuArray.randi

gpuArray.nan

gpuArray.randn

gpuArray.true

gpuArray.linspace

gpuArray.false

gpuArray.logspace

gpuArray.eye

這些方法的具體用法可以使用類似下面的命令尋求幫助

help gpuArray/eye

其實,用法和對應的普通函式的用法都是類似的。

II = gpuArray.eye(1024,'int32');

size(II)

1024 1024

還可以用下面的命令生成隨機數

parallel.gpu.rng

parallel.gpu.RandStream

對於CPU和GPU產生隨機數方法的比較,有興趣的可以看這裡。

最後,一些處理普通資料的函式也可以用來檢測GPU資料的屬性

Function

Description

classUnderlying

Class of the underlying data in the array

existsOnGPU

Indication if array exists on the GPU and is accessible

isreal

Indication if array data is real

length

Length of vector or largest array dimension

ndims

Number of dimensions in the array

size

Size of array dimensions

值得注意的是,GPU的資料是要存到視訊記憶體裡面的,視訊記憶體可沒有記憶體那麼大,雖然maltab和CUDA為我們做了很多視訊記憶體管理的工作,但是我們還是要保證處理的矩陣不會把視訊記憶體撐爆。

matlab的工具箱支援GPU的情況

可以在下面的網頁上查詢

http://www.mathworks.cn/products/parallel-computing/builtin-parallel-support.html

其中對於影象處理來說有一個很有用的。我曾經的一篇博文

介紹過使用 blockproc 函式加速滑動窗。其實,這個函式還可以進一步被GPU加速,方法就是設定其中的 'UseParallel’ 變數。例子

下面是用gpu解波動方程的例子,cpu和gpu版本程式

進行對比,改動其實不太大,細節見參考中第四個網頁

編譯.CU檔案

對於其他一些複雜的,無法用matlab內部函式進行GPU加速的程式碼,matlab還提供了一個更強大的工具,就是呼叫.cu檔案。

熟悉matlab+c混合程式設計的都知道matlab可以把.c,.cc,.cpp等檔案編譯為能夠使用的mex檔案。對於CUDA程式.cu,matlab也提供了一套方法來呼叫,最終編譯成.ptx檔案。

相關推薦

MATLAB GPU加速

以前使用matlab的時候,很多人都用過裡面的並行工具箱,用的最多的應該就是parfor。實際上,matlab裡面已經有不少工具箱裡面都有了支援GPU加速的函式。使用matlab+GPU加速的前提是,機器必須安裝了支援CUDA的顯示卡,而且CUDA驅動的版本在1.3以上。一些

MATLAB上的GPU加速計算——學習筆記 (2014-12-22 04:44:05)

轉自:http://blog.sina.com.cn/s/blog_6f062c360102v9ic.html   MATLAB可謂工程計算中的神器,一方面它自帶豐富的函式庫,另一方面它所有的資料都是內建的矩陣型別,最後畫圖也方便,因此解決一些小規模的計算問題如果對效能要求不高的話

MATLAB上的GPU加速計算

【時間】2018.10.12 【題目】MATLAB上的GPU加速計算   概述 怎樣在MATLAB上做GPU計算呢?主要分為三個步驟:資料的初始化、對GPU資料進行操作、把GPU上的資料回傳給CPU   一、資料的初始化 首先要進行資料的初始化。有兩種

Matlab 應用GPU加速

由於GPU近幾年地迅速發展,GPU在多執行緒計算等方面逐漸超越CPU成為計算的主力軍。而Matlab是常用的數學應用軟體,現在講解一下如何在Matlab中使用GPU加速計算 0. 必要條件 要想在Matlab中使用GPU加速有兩個必須的條件 計算機上

matlab 中使用 GPU 加速運算

views mark amp int 希望 style ont color col 為了提高大規模數據處理的能力,matlab 的 GPU 並行計算,本質上是在 cuda 的基礎上開發的 wrapper,也就是說 matlab 目前只支持 NVIDIA 的顯卡。 1.

(Matlab)GPU計算所需的配置

win 7 2015a font src 配置 div width http bubuko 電腦:聯想揚天 M4400 系統:win 7 X64 硬件:NVIDIA GeForce GT 740M 獨顯2G 硬件驅動: 軟件: Mat

(Matlab)GPU計算及CPU計算能力的比較

new start atl border ble 大小 uri win courier %%首先以200*200的矩陣做加減乘除 做比較 t = zeros(1,100); A = rand(200,200);B = rand(200,200);C = rand(200,

Windows 10下安裝配置Caffe並支持GPU加速(改)

nvi 基本 一個 應該 添加 它的 右鍵 分享圖片 vid 基本環境 建議嚴格按照版本來 - Windows 10 - Visual Studio 2013 - Matlab R2016b - Anaconda - CUDA 8.0.44 - cuDN

CSS動畫的效能分析和瀏覽器GPU加速

此文已由作者袁申授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 有數的資料大屏可以在一塊螢幕上展示若干張不同的圖表,以炫酷的方式展示各種業務資料。其中有些圖表使用CSS實現了餅圖輪播、地圖示記點閃爍等動畫,然而在一張大屏上同時顯示了許多張圖表時,持續的動畫效果有時會出現掉幀、卡頓的

NVIDIA針對大規模資料分析和機器學習推出RAPIDS開源GPU加速平臺!

2018年10月10日,NVIDIA釋出了一款針對資料科學和機器學習的GPU加速平臺,該平臺已為多個行業領先者所採用,並能幫助超大規模公司以前所未有的速度分析海量資料並進行精準的業務預測。 RAPIDS™ 開源軟體幫助資料科學家顯著地提高了工作績效,對於這些資料科學家來說,種種業務挑戰應接不暇,

什麼是GPU 加速

1、什麼是GPU加速計算  GPU,又稱顯示核心、視覺處理器、顯示晶片,是一種專門在個人電腦、工作站、遊戲機和一些移動裝置(如平板電腦、智慧手機等)上影象運算工作的微處理器,與CPU類似,只不過GPU是專為執行復雜的數學和幾何計算而設計的,這些計算是圖形渲染所必需的。隨著人工智慧的發展

OPENCV(opencv2和opencv3.3)用GPU加速

OpenCV3.1 使用GPU及OpenCL加速的教程 OpenCV內部很多函式都已經實現了GPU加速, 新發布的OpenCV3.0版本很方便的解決了這個問題,只要你使用UMat即可。 cuda初始化需要時間,而且你傳入cuda也有時間。 首先你得說一下你是直接用的Cuda Runtim

ubuntu16.04下opencv安裝專欄,問題集錦,包括GPU加速

參考:https://blog.csdn.net/cocoaqin/article/details/78163171 參考:https://blog.csdn.net/cocoaqin/article/details/78376382?utm_source=debugrun&utm_me

毫秒級檢測!你見過帶GPU加速的樹莓派嗎?

樹莓派3B+英特爾神經計算棒進行高速目標檢測 轉載請註明作者夢裡茶 NCS Pi 程式碼: 訓練資料預處理:https://gist.github.c

檢視GPU佔用率以及指定GPU加速程式

GPU佔用率檢視: 方法一:工作管理員 如圖,GPU0和GPU1的佔用率如下顯示。     方法二:GPU-Z軟體        下面兩個GPU,上面是GPU0,下面是GPU1 sensors會話框裡的GPU Load就

【Python-GPU加速】基於Numba的GPU計算加速(一)基本

Numba是一個可以利用GPU/CPU和CUDA 對python函式進行動態編譯,大幅提高執行速度的加速工具包。 利用修飾器@jit,@cuda.jit,@vectorize等對函式進行編譯 JIT:即時編譯,提高執行速度 基於特定資料型別

配置深度學習GPU加速(Cuda以及Cudnn安裝,win10作業系統下)

https://blog.csdn.net/hejunqing14/article/details/76059603 https://blog.csdn.net/Captain_F_/article/details/79171332 https://blog.csdn.net/xuyanan

記錄一次Python下Tensorflow安裝過程,1.7帶GPU加速版本

最近由於論文需要,急需搭建Tensorflow環境,16年底當時Tensorflow版本號還沒有過1,我曾按照手冊搭建過CPU版本。目前,1.7算是比較新的版本了(也可以從原始碼編譯1.8版本的Tensorflow)。 安裝步驟: 不能急於求成,安裝任何東西前都應該先閱讀使用者手冊與FAQ,弄清軟體依賴與安裝

windows下配置gpu加速——cuda與cudnn安裝

windows下配置gpu加速——cuda與cudnn安裝 一、系統情況 二、安裝工具準備 三、工具安裝 1、 顯示卡驅動安裝 2、cuda9.0安裝 3、cudnn9.0安裝 4、vs2015安裝 四、

GPU加速原理

原文:https://blog.csdn.net/weiweigfkd/article/details/23051255 GPU加速技術&原理介紹 1、GPU&CPU GPU英文全稱Graphic Processing Unit,中文翻譯