12代酷睿运行matlab使用体验报告

您所在的位置:网站首页 微信语音聊天记录删除了可以查出来吗 12代酷睿运行matlab使用体验报告

12代酷睿运行matlab使用体验报告

2023-11-10 01:27| 来源: 网络整理| 查看: 265

前言

目前网上对于12代酷睿的评测,很少有涉及理工科软件的内容,故创作此文,供大家参考。有关其他工业软件,如NAMD2、python深度学习(AI benchmark)、ANASYS fluent等,指路硬核up主 @51972 的投稿:

测试平台介绍

首先介绍硬件平台:msi Z690-A DDR5 + core i5 12600kf + Asgard DDR5 4800 16G*2 (镁光颗粒普条) + msi RTX 2060 VENTUS XS C OCV1。

cpu超频到单P核5.2GHz,双P核5.1GHz,全P核5.0GHz,全E核4.0GHz,电压设置除P核电压手动设定为1.25V以外其他均为默认自动挡。12600kf超频空间很大,但是请大家注意超频完成后的测试,不光需要发热方面的拷机测试,还要进matlab进行计算稳定性的测试。开启并行池计算后如果出现并行进程崩溃(即程序运行中报警告并行池容量减少),请酌情降频。

内存超频到5200MHz c44-44-44-82,电压1.1V。注意,镁光非特挑颗粒超频幅度非常有限,基本到5200MHz就到头了(我手头这对内存连5300MHz都上不去)。有消息称,镁光普条颗粒加压超过1.25V容易报废。鉴于目前市面上大多数ddr5颗粒都是镁光的,所以提醒大家,不要尝试极限超频。

由于机箱采用了闷罐乔思伯RM2,即使经过手动改造(前面板上开孔双12cm风扇前进风+顶置msi P240冷排)后,散热依然存在局限,所以下面测试时的温度不会太好看。正常使用场景下,12代酷睿的温度表现是要好于我的使用场景的。

软件方面,操作系统为windows 11 专业版 21H2;matlab版本采用R2020a,也就是改善amd处理器的mkl库调用后的第一个版本。测试时还用到了windows任务管理器和intel XTU(The Intel® Extreme Tuning Utility),其中任务管理器用于查看各个核心的负载情况,而cpu总负载率、温度和功耗以XTU为准。

测试结果

首先是最简单便捷的matlab自带平分matlab benchmark。测试十圈,结果如下:

bench(10) 总体平分bench(10) 各项目耗时

请注意,这里后两项绘图测试部分是有用到GPU的,所以该结果不是纯CPU测试。不过,仍然可以看出,在FFT、ODE、Spare三个项目中,12代酷睿吊打了一众老架构cpu,在LU项目中也仅仅因为核心数的劣势而输于3970x。在跑benchmark时,全部16线程均有被调用,但是6个P核的负载率明显高于4个E核。

bench(10) 各个线程的负载情况。前三排为P核线程,第四排为E核线程。

接下来引入一项知乎上的一个民间测试集合,内含网友们使用各种cpu运行同一段matlab代码的用时比较,代码中考察了乘法、系数矩阵、逆矩阵、快速傅里叶、LU分解、QR分解、奇异值分解以及特征值等8种常用运算。这个测试虽然不太严谨,但是正文中和评论区内涵盖的cpu型号很广,所以有一定的参考价值。这里贴出知乎链接

 https://www.zhihu.com/answer/1687421295

本机运行结果如下:

https://www.zhihu.com/answer/1687421295 测试结果 单位:秒

运行此测试时,cpu各线程的负载情况与benchmark时类似,在此就不贴图了。这里摘录知乎链接里部分其他型号的跑分用时供大家对比参考:

节选自https://www.zhihu.com/answer/1687421295

下面我将重考察一下win11下12代酷睿运行matlab时的P/E核调用机制,我相信相当多的用户对这个问题是很关心的。

首先来看不开并行时的调用情况。使用矩阵乘法对cpu施加高负载:

        a=rand(3e4);

        b=rand(3e4);

        c=a*b;

这样就简单模拟了运行非并行代码的高负载情形。此时cpu各线程负载情况如下:

非并行语句高负载情形

此时cpu总占用率在65%左右徘徊,P核的原线程和超线程占用率很高,而E核线程却只能处于半满状态。那么,如果手动开启多核并行,能否提升cpu使用率,特别是E核的使用率呢?

12600kf上使用parpool指令最多开启容量为10的并行池,此时cpu能够达到的最高负载如下:

并行池容量10的高负载情形

可以发现,cpu的总负载率并没有提升,E核的占用率甚至略有下降,只是P核能更稳定更接近满载了而已。

那么,这是否说明matlab无法有效应用E核呢?答案是否定的。请注意,上述测试过程中,我们一直保持matlab窗口处于前台;如果matlab窗口切到后台(使用其他窗口完全覆盖matlab窗口,最小化matlab窗口或者切换到其它桌面),则各个线程的负载情况会变为如下情形:

使用文件管理器窗口覆盖开启并行池高负载运行的matlab窗口后,各个线程的使用率情况

cpu总使用率从65%左右跳水到只有35%左右,此时E核稳定占满,而P核几乎不负载matlab的计算任务!可见,12代酷睿+win11运行matlab程序的逻辑如下:matlab在前台时优先调用P核原线程处理,如果P核全部占满则开始占用E核以及P核超线程,此时E核与P核超线程之间并没有明确的优先级划分;而当matlab切到后台时优先占用E核,E核占满后P核只会加载极低水平的调用,即P核总会为前台进程预留大部分性能。

通过将进程与线程一一对应锁定,维持后台matlab对cpu的高占用率。

值得注意的是,即使在任务管理器中将matlab相关进程的优先级调整到最高,也不能提高matlab的cpu使用率。但是想让matlab切换到后台是仍然维持高占用是可以做到的,方法就是使用进程的相关性设置,将matlab并行池的进程与逻辑线程进行锁定。比如,将并行池的10个进程本别与编号为0、2、4、6、8、10、12、13、14、15的线程锁定以后,就可以使matlab切换到后台后依然维持对cpu的高占用。

被挂在屏幕一角的matlab命令行窗口,即维持的前台状态,又不占用屏幕面积。

当然,如果觉得任务管理器进程相关性设置太麻烦的话,这里也提供一些其他的思路来维持matlab高负载。可以购入副屏专门安放matlab窗口,这样matlab就可以总是保持前台运行状态;或者使用Windows Powershell以命令行方式打开matlab(matlab -nodekstop -nodisplay),这样的命令行窗口就很容易缩小后挂在屏幕的一角上,屏幕仍然剩余大块空间用来打开其他软件。

总结

由于12代酷睿性能的突飞猛进,matlab在十二代酷睿上的计算效率显著高,ddr5的高带宽和自带ecc也利好科学计算。但是,P/E核的差异化设计以及win11的线程调度机制导致matlab切到后台后能够分到的cpu资源显著降低。想要维持matlab对cpu的高占用率,就需要将matlab窗口保持在前台,或者开启并行并将并行池进程均匀分配到P/E核上。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3