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站评测:

ef62d5b0f1288e020520076914faf692.png

而我的日常体验也是这样,后面展开。

简单对比方法

使用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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐