AMD CPU在MATLAB上的表现实测

AMD Ryzen 7 3700X

MATLAB R2019a(9.6.0.1072779)

 

测试项目

矩阵计算

首先,来编写一段性能测试程序,主要的测试项目有矩阵乘法、稀疏矩阵、逆矩阵、FFT、LU、QR、奇异值分解、特征值与特征向量,每项测试进行三遍取均值。

%%%%%%%%%%%%   MATLAB纯CPU性能测试   %%%%%%%%%%%
%%%%%%%%%%%%   Haotian_W SEPT 2020  %%%%%%%%%%%
clear, clc
A = rand(3e3);
B = rand(3e3);
num = 3;
T = zeros(8,num);
for i = 1:num
    % Test1 乘法
    tic, X1 = A*B; T(1,i) = toc;
    % Test2 稀疏矩阵
    tic, X2 = sparse(A); T(2,i) = toc;
    % Test3 逆矩阵
    tic, X3 = inv(A); T(3,i) = toc;
    % Test4 快速傅里叶
    tic, X4 = fft(A); T(4,i) = toc;
    % Test5 LU分解
    tic, [L5,U5,P5] = lu(A); T(5,i) = toc;
    % Test6 QR分解
    tic, X6 = qr(A); T(6,i) = toc;
    % Test7 奇异值分解
    tic, [U7,S7,V7] = svd(A); T(7,i) = toc;
    % Test8 特征值与特征向量
    tic, [V8,D8] = eig(A); T(8,i) = toc;
end
% 各项测试平均时间
t = sum(T,2)./num;
disp(['Multiplication :   ' sprintf('%6f',t(1))])
disp(['Sparse         :   ' sprintf('%6f',t(2))])
disp(['Inverse        :   ' sprintf('%6f',t(3))])
disp(['FFT            :   ' sprintf('%6f',t(4))])
disp(['LU             :   ' sprintf('%6f',t(5))])
disp(['QR             :   ' sprintf('%6f',t(6))])
disp(['SVD            :   ' sprintf('%6f',t(7))])
disp(['Eigen          :   ' sprintf('%6f',t(8))])
% Total
total = sum(t);
disp('----------------------------')
disp(['Total          :   ' sprintf('%6f',total)])


% https://blog.csdn.net/BAR_WORKSHOP/article/details/108224394
% i5-7400 R2017a

Multiplication :   0.412246
Sparse         :   0.083916
Inverse        :   0.779796
FFT            :   0.080855
LU             :   0.379976
QR             :   0.416257
SVD            :   13.316459
Eigen          :   20.372446
----------------------------
Total          :   35.841952
% AMD 3700X  R2019a 优化前

Multiplication :   0.758483
Sparse         :   0.047772
Inverse        :   1.036525
FFT            :   0.030290
LU             :   0.336546
QR             :   0.501219
SVD            :   6.163582
Eigen          :   12.077816
----------------------------
Total          :   20.952232

% 在没有优化的R2019a中,3700X部分项目甚至还没有i5-7400快
% AMD 3700X  R2019a  优化后

Multiplication :   0.185732
Sparse         :   0.047977
Inverse        :   0.257886
FFT            :   0.022052
LU             :   0.117283
QR             :   0.172766
SVD            :   3.998370
Eigen          :   7.863378
----------------------------
Total          :   12.665444

方法一 批处理启动

在cmd中输入以下命令运行matlab。

    @echo off	
    set MKL_DEBUG_CPU_TYPE=5	
    call "%MKLROOT%\bin\mklvars.bat" MKL_DEBUG_CPU_TYPE=5	
    matlab.exe

 

方法二 修改环境变量

在控制面板里找到“编辑系统环境变量”,选择“高级-环境变量”,找到或者新建 MKL_DEBUG_CPU_TYPE,值为 5。和上面的不同是,修改完环境变量后会影响所有使用MKL的程序。

AMD CPU在MATLAB上的表现实测_第1张图片

你可能感兴趣的:(Matlab,Others,CPU,AMD)