不同CPU的MATLAB性能表现的简单对比方法

MATLAB性能表现

小结:程序不同,无法一概而论。可以分为两部分:1、多线程,2、浮点数。【好像说了一堆众所周知的废话】

参考网址
https://www.mathworks.com/support/requirements/choosing-a-computer.html

具有更多CPU内核的计算机可以胜过具有更少CPU内核数量的计算机,但是结果会因MATLAB应用程序而异。MATLAB自动使用多线程来利用许多MATLAB应用程序中的自然并行性。但是,并非所有MATLAB函数都是多线程的,并且速度会随算法而变化。为了获得更多功能,并行计算工具箱提供了并行编程结构,可以更直接地利用多个计算机内核。

MATLAB的性能取决于浮点硬件的存在。在许多CPU上,浮点单元(FPU)的数量等于CPU内核的数量。但是,在某些处理器上,单个FPU可能在多个CPU内核之间共享,这可能会造成性能瓶颈。

虚拟内核可以适度地提高整体系统性能,但是它们可能对MATLAB应用程序的性能影响很小。同时多线程使计算机看起来具有比实际内核多两倍的内核。当使用Windows Task Manager之类的工具时,MATLAB似乎仅使用计算机上可用的一半CPU内核,而实际上“未使用”的一半实际上是由超线程创建的虚拟内核。

多线程的影响

从过往的使用体验,MATLAB其实可以吃满核心的。比如B站评测:
不同CPU的MATLAB性能表现的简单对比方法_第1张图片
而我的日常体验也是这样,后面展开。

简单对比方法

使用CPU-Z的跑分,基本可以有直观的对比。

http://valid.x86.fr/bench/16

以前自己写过一个程序,分别在i7 8700k, i5 8600k, i3 8100,以及i7 8550U上跑。程序规模大概是百万次的循环计算,没有用并行计算。具体结果不太记得了,下面是概数
i7 8700k, 120s
i5 8600k, 150s
i3 8100,以及i7 8550U, 175s
对应的CPU-Z的多线程跑分是
i7 8700k, (12线程)3860
i5 8600k, (6线程)2867
i3 8100, (4线程)1615
i7 8550U, (8线程)1751
对应的CPU-Z单线程跑分是
i7 8700k, 509
i5 8600k, 522
i3 8100, 423
i7 8550U, 385
可以看出,按多线程跑分来判断基本是非常准确的,1000分对应就是20~30%的差距。单线程跑分真的,没什么乱用。。。

AMD YES

R5 3600,(12线程)3973
R7 3700x,(16线程)5465
价格比INTEL便宜1k,hhhhhh

你可能感兴趣的:(matlab实用技巧)