matlab呼叫gpu進行矩陣運算

2021-07-27 11:09:28 字數 614 閱讀 3804

最近在使用matlab計算矩陣的特徵值時,遇到很大的困難,對於乙個30000*30000的矩陣,特徵值計算一次需要花近三個小時,

矩陣是非常稀疏(且有乙個零特徵根)的,將矩陣轉成稀疏矩陣形式後,只算最小的幾個特徵值,速度上很快,但是每次算出來的特徵值都不一樣。

不知道原因出在**,可能跟矩陣有乙個零特徵值有關吧。把 matlab help 文件中的 eigs 例子運算一遍 ,結果每次都是一樣的,然而將例子中的稀疏矩陣某一行改為全零(相應的 這時矩陣必有乙個零特徵值),得到的特徵值也開始變化。所以感覺跟矩陣有零特徵根有關。

而在網上查閱資料,發現matlab 也可以呼叫gpu對矩陣運算進行加速。

用法如下:

1. 先在命令列 輸入,

gpudevice
檢視自己的電腦gpu的型號。

2. 將矩陣轉化為gpuarray格式,

如:假設現在已經初始化了乙個矩陣(x),

gx = gpuarray(x)

上面的命令將 x 轉化為 gpu 可進行計算的格式, gx。

然後可以在命令列輸入:

doc gpuarray

檢視這一格式對應的內建函式,選擇自己需要的函式,就可以進行計算了。

Matlab 使用GPU進行濾波運算

從matlab2013版本開始,matlab將可以直接呼叫gpu進行平行計算,而不再需要安裝gpumat庫。這一改動的好處是原有的matlab內建函式都可以直接運用,只要資料格式是gpuarray格式的,那麼計算過程會自動的呼叫gpu進行計算 具體操作起來,只要知道下面幾個函式就可以像編寫簡單的m檔...

Matlab之GPU加速方法

複雜 加速方法 matlab目前只支援nvidia的顯示卡。想知道自己的電腦有沒有這個能力,在matlab中執行gpudevice。只要資料格式是gpuarray格式的,那麼計算過程會自動的呼叫gpu進行計算。x rand 10,single 定義在cpu上的乙個10x10的隨機初始化陣列 gx g...

matlab練習程式(GPU加速)

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