MATLAB使用GPU加速计算

先上结论

1、对于特征值运算eig()函数来说,GPU的加速效果是很明显的
2、如果要求精度不高,采用单精度计算,加速效果更加明显

首先查看自己的电脑是不是支持GPU计算

在matlab的终端中输入:

gpuDevice()

MATLAB使用GPU加速计算_第1张图片
可以看出我电脑的显卡为NVIDIA GeForce GTX 1050 Ti,且SupportsDouble值为1,表明其支持双精度计算。

clc
clear
close all
A = rand(3000,3000);
B = gpuArray(single(A));
tic
[v1,d1] = eig(B);
toc

对于上述简单的代码,如过使用CPU,即eig(A)的形式,对于3000*3000的矩阵,需要花费15秒的时间,采用双精度GPU之后,时间降为11秒,采用单精度计算后,时间仅为4秒。对于更大型的矩阵,加速效果会更加明显。

你可能感兴趣的:(matlab,开发语言)