Matlab之GPU加速方法

2021-07-22 13:42:38 字數 1369 閱讀 3295

複雜**加速方法

matlab目前只支援nvidia的顯示卡。

想知道自己的電腦有沒有這個能力,在matlab中執行gpudevice

只要資料格式是gpuarray格式的,那麼計算過程會自動的呼叫gpu進行計算。

x=rand(10,'single'); %定義在cpu上的乙個10x10的隨機初始化陣列

gx=gpuarray(x); %在gpu開始陣列gx,並且將x的值賦給gx

gx2=gx.*gx; %gpu上執行陣列對應位置的點乘

還有很多支援 gpuarray 資料型別的函式,具體可以用 methods(『gpuarray』) 檢視。下列某函式的說明可以用 help gpuarray/functionname 檢視:

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

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

ii = gpuarray.

eye(1024,'int32');

size(ii)

ans=1024

1024

ii)在gpu記憶體中隨機初始化一些記憶體資料。

gx=rand(10,'gpuarray'); %直接在gpu裝置上隨機初始化乙個10x10的陣列

%%常用的隨機初始化函式有:eye, ones, zeros, rand, randi, randn.

x2=gather(gx2)       %將gpu記憶體中的陣列gx2賦值給cpu中的x2
tips

有時候gpu受限於硬體架構,單精度的計算遠快於雙精度。這時候可以考慮在拷貝的時候順便轉換一下精度 a = gpuarray(single(b)) 。

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

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

matlab練習程式(GPU加速)

在matlab中使用gpu,要先輸入gpudevice命令初始化一下裝置。根據返回的資訊能夠大概估算出視訊記憶體支援的最大資料。否則使用時容易出現下面這樣的問題 錯誤使用 gpuarray an unexpected error occurred during cuda execution.the ...

GPU硬體加速

了解什麼是gpu硬體加速,需要先了解什麼是gpu gpu graphic processing unit 圖形處理晶元 它是顯示卡的 心臟 也就相當於cpu在電腦中的作用,它決定了該顯示卡的檔次和大部分效能,同時也是2d顯示卡和3d顯示卡的區別依據 2d顯示晶元在處理3d影象和特效時主要依賴cpu的...

numpy使用GPU加速

在跑完mnist的knn分類後,跑的挺慢,突然想有沒有gpu的numpy的呢,上網查了查,才知道原生的numpy沒有實現 不應該啊。結構查到了minpy,花了10分鐘左右配好了環境,寫個日誌記錄一下。安裝minpy 我的機器是ubuntu 16.04的,minpy需要cuda,cudnn,由於這倆我...