先上结论
1、对于特征值运算eig()函数来说,GPU的加速效果是很明显的
2、如果要求精度不高,采用单精度计算,加速效果更加明显
首先查看自己的电脑是不是支持GPU计算
在matlab的终端中输入:
gpuDevice()

可以看出我电脑的显卡为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中利用GPU加速特征值运算eig()函数的方法及效果。通过对比不同精度设置下CPU与GPU的计算时间,验证了GPU在进行大规模矩阵计算时的显著加速作用。
2104

被折叠的 条评论
为什么被折叠?



