欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

AMD CPU在MATLAB上的表现实测

程序员文章站 2022-03-27 21:40:55
硬件平台:AMD 3700x、16g 3200内存...

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上的表现实测

本文地址:https://blog.csdn.net/BAR_WORKSHOP/article/details/108224394