GPU求特征值的使用方法
clear all
clc
M = rand(2000,2000); % 生成一个随机矩阵
tic
[A1,B1] = eig(M); % 求该随机矩阵的特征值和特征向量
t1=toc
tic
M = single(M); % 将数据转换为单精度型
M = gpuArray(M); % 将数据从CPU中搬到GPU
[A2,B2] = eig(M); % 求特征值和特征向量
A2 = gather(A2); % 将数据从GPU中搬到CPU
t2 = toc
GPU和CPU性能比较测试
clear
clc
% gpuDevice;%查看gpu设备
size_ = 1000;
T1=zeros(10,1);
T2=zeros(10,1);
for i=1:10
i
size = i*size_;
M = rand(size,size); % 生成一个随机矩阵
M=M*M'; % 实对称矩阵
M = single(M); % 转换单精度
tic % 开始计时
[A1,B1] = eig(M); % 求该随机矩阵的特征值和特征向量
t1 = toc; % 停止计时
T1(i,1) = t1;
tic
M = single(M); % 将数据转换为单精度型
M = gpuArray(M); % 将数据从CPU中搬到GPU
[A2,B2] = eig(M); % 求特征值和特征向量
A2 = gather(A2); % 将数据从GPU中搬到CPU
t2 = toc;
T2(i,1) = t2;
end