matlab调用gpu进行矩阵运算

最近在使用matlab计算矩阵的特征值时,遇到很大的困难,对于一个30000*30000的矩阵,特征值计算一次需要花近三个小时,

矩阵是非常稀疏(且有一个零特征根)的,将矩阵转成稀疏矩阵形式后,只算最小的几个特征值,速度上很快,但是每次算出来的特征值都不一样。

不知道原因出在哪里,可能跟矩阵有一个零特征值有关吧。把 matlab help 文档中的 eigs 例子运算一遍 ,结果每次都是一样的,然而将例子中的稀疏矩阵某一行改为全零(相应的 这时矩阵必有一个零特征值),得到的特征值也开始变化。所以感觉跟矩阵有零特征根有关。

而在网上查阅资料,发现matlab 也可以调用GPU对矩阵运算进行加速。

用法如下:

1. 先在命令行 输入,

gpuDevice
查看自己的电脑gpu的型号。

2. 将矩阵转化为gpuArray格式,

    如:假设现在已经初始化了一个矩阵(X),

GX = gpuArray(X)

面的命令将 X 转化为 gpu 可进行计算的格式, GX。

然后可以在命令行输入:

doc gpuArray

查看这一格式对应的内置函数,选择自己需要的函数,就可以进行计算了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章