不只是大玩具:Ryzen AI Max+ 395 CPU量化测评
及9950X搭配单条64 GB内存性能测试
0 前言
A厂的9950X是近期小型单任务量子化学节点的不二之选,其高性能来自于Zen5架构的高ipc和TSMC工艺带来的高频率和优秀能耗比。尽管如此,锐龙自Zen2以来cpu核心所在的CCD和内存控制器所在的IOD分离的设计始终导致其内存性能受限。对于64 GB以上的容量,内存频率往往被限制在6000-6400 MT/s (理论带宽96-102 GB/s,实际测试往往更低),这可能成为了9950X在诸多量子化学任务上的瓶颈。
今年年初,A厂发布了面向移动端的旗舰soc芯片Strix Halo。其旗舰型号AI Max+ 395(以下简称395)集成了和9950X相同的16个Zen5大核心,以及一个40cu、性能接近4070甚至4060ti的巨大核显。为了提供核显所需的带宽,A厂为其配置了256-bit位宽(相当于4通道)的LPDDR5X 8000统一内存。其理论带宽256 GB/s虽然不及显卡专用的GDDR6/7显存,但已经足够暴打台式机平台的9950X。
鉴于此,笔者年初便从Framework预定了搭载395 CPU的itx主板,最近到货后简要测试了其在常见量子化学任务中的表现,并与笔者另一台9950X主力机进行了对比。由于笔者不做MD和AI的项目,暂时没有计划加入核显的测试。
1 参赛选手与测试方法
1.1 硬件系统
1.1.1 395主机
- 主板:MSI B850 Tomahawk Wifi
- 内存:2或4根芝奇64 GB 6000MT/s CL36-44-44-96(F5-6000J3644D64GX4-FX5)
- 系统盘:Optane P4801X 100G M.2(含16 GB swap)
- 临时文件盘:Solidigm D7-PS1030 3.2T E3.s PCIe 5.0
主板设置:
关超线程、关IOMMU
MEMCLK=UCLK,FCLK 2000,开latency killer,timing preset设balanced,开gear down mode
温度墙95度;Boost Clock Override +200 MHz;CO:ccd0 -12,ccd1 -20;CS:mf-mt -10,mf-ht -10,hf-mt -15,hf-ht -15
笔者尝试过进一步超频这套256 GB内存,更改频率或小参均会导致开机困难,遂作罢。在换到这套256 GB内存之前,笔者使用的是金百达2 * 48 GB 6400c32套条。这套老内存的超频潜力较高,部分此前测试的数据也会加入对比,记作9950X/96G。
因为395只支持PCIe 4.0,且笔者懒得拆装,两个主机的临时文件盘没有控制变量一致,这可能会稍微影响重I/O的DLPNO-CCSD(T)测试。但使用的两个盘分别是PCIE4.0和5.0的顶级企业盘,应该不会影响定性结果。
两个系统盘都开了swap,设vm.swappiness=1,这可以缓解锐龙平台内存和I/O同时重载情况下的内存带宽瓶颈。
1.2 软件和操作系统
本文所有计算在fedora server 42系统上进行。除了使用96 GB内存的测试之外,内核版本为6.16.9-200。
ORCA使用6.0.1 AVX2版本,OpenMPI使用默认GCC编译4.1.6版本。Gaussian使用16 C.02 AVX2版本。
由于Framework主板不支持在bios内关闭超线程和IOMMU,395的测试中这两项通过调整内核关闭。
所有测试使用16核,ORCA maxcore设置为最大值的90%(如128 GB内存设置7200)。
1.3 理论性能
- 395:122111.0 MB/s | 194948.8 MB/s | 150.2 ns
- 9950X/256G:67863.6 MB/s | 66963.0 MB/s | 76.2 ns
- 9950X/128G:75153.0 MB/s | 71704.9 MB/s | 73.5 ns
- 9950X/96G:83242.8 MB/s | 78230.5 MB/s | 66.5 ns
可见395虽然延迟比较逆天,但带宽是9950X的三倍甚至两倍,而带宽对于HPC类负载是明显更重要的。
1.4 测试项目
1.4.1 Gaussian DFT SCF+Gradient(G16-force)
分子:缬氨霉素(test 0397)
关键词:b3lyp/def2TZVP G09default force scf=novaracc
1.4.2 Gaussian DFT freq(G16-freq)
分子:缬氨霉素(test 0397)
关键词:b3lyp/6-31G** freq scf=novaracc
1.4.3 ORCA wB97MV QZ单点(ORCA-DFT)
分子:缬氨霉素(test 0397)
关键词:! wB97M-V def2-QZVPP def2/J TightSCF
1.4.4 ORCA TDDFT(ORCA-TDDFT)
分子:缬氨霉素(test 0397)
关键词:! B3LYP def2-TZVP D4 def2/J TightSCF
%TDDFT Nroots 3 END
1.4.5 ORCA大体系小基组DLPNO-CCSD(T)(ORCA-DLPNOlargeM)
分子:缬氨霉素(test 0397)
关键词:! DLPNO-CCSD(T) NormalPNO cc-pVDZ cc-pVDZ/C TightSCF
1.4.5 ORCA小体系中等基组DLPNO-CCSD(T1)(ORCA-DLPNOsmallM)
分子:某铑催化反应过渡态,分子式RhC10H14O2Cl
关键词:! DLPNO-CCSD(T1) cc-PVTZ cc-PVTZ/C VeryTightSCF TightPNO
%BASIS
NewGTO Rh "cc-pvtz-pp" End
NewAuxCGTO Rh "cc-pvtz-pp/c" End
NewEcp Rh "SK-MCDHF-RSC" End
END
1.4.6 ORCA QD-NEVPT2(ORCA-NEVPT2)
分子:{Fe[C(SiMe3)3]2}-
关键词:! def2-TZVPP TightSCF RIJCOSX def2-TZVPP/C MOread NoIter
%MOinp "...gbw" (指向此前收敛的CASSCF轨道)
%CASSCF
Nel 9
Norb 7
Mult 4
Nroots 5
PTmethod SC_NEVPT2
PTsettings QDType QD_VanVleck End
END
2 结果与讨论
2.1 测试结果
测试结果汇总于下表:(单位:秒)
以9950X/128G为参考,速度(1/耗时)比例如下:
2.2 讨论
测试的结果不十分出乎意料——395在内存敏感的任务中凭借多于9950X一倍的带宽,相较同样配置128 GB内存的9950X有10-20%的提升。这还是在其功耗受限于120 W,满载频率只能跑在4.5-4.7 GHz的前提下跑出的成绩。需要注意的是这个功耗大约只有9950X开启PBO2后的一半。NEVPT2中395也落后于9950X,可能是由于体系不大导致内存压力有限。但也由于395的CPU功耗受限,在9950X内存带宽瓶颈不严重的普通DFT任务中,395落后5%左右。
可能由于本次所选测试项目较小,9950X安装256 GB内存后大部分项目都比128 GB情况慢,这和其受限的内存带宽直接相关,同时也可能受制于大内存时IOD和CCD争抢功耗。如果对比更易买到的96 GB内存,128和256 GB在(不爆内存时的)性能上确实是稍差。
3 结论与展望
笔者认为,这些测试在一定侧面上展现了Zen5桌面端CPU的内存带宽瓶颈对计算化学任务的影响。移动端的395对比9950X,在功耗砍半的前提下,可以做到非优势项目落后不超10%,优势项目提升10-20%,这是十分亮眼的。
需要注意的是,395更高的内存性能不止来自于内存用料本身的更换,也来自于芯片互联工艺的改进:395中CCD和IOD采用了更先进(也更贵)的扇出工艺直接互联,而不像9950X中需要通过PCB基板。这极大缩短了高频信号需要传输的距离,更避免了PCB本身带来的损耗。根据A厂的路线图,这项技术将在Zen6上普及。考虑到Zen6大概率也会重做IOD,其内存性能是值得期待的。同时,有传闻A厂在准备配置两个带Vcache CCD的9950X3D升级版。如果属实,这也可以帮助缓解内存瓶颈。
而9950X在装备2DPC的256 GB内存后在大部分项目上退步。如非必要,目前这并不是一个好选择。但从另一个角度讲,随着bios的不断优化,2DPC大内存也已经可以跑到可以接受的频率(而非官方支持的3600),这对有大内存需求但由于预算或功率不想购置服务器的用户可能是可行的选择。
4 本文不构成任何购买建议
4.1 那么,我应该去买一块395吗?
不,笔者并不建议仅为395的内存性能购买它。395的主要问题在于它是一块移动端CPU。暂不论其受限的功耗,395一共只给了16条PCIe 4.0通道,这基本排除了后续加装显卡的可能,而395本身的核显性能又有点上不去下不来,导致它几乎没有什么可升级空间。而桌面端的AM5插槽还有至少2年的支持时间,至少可以用到Zen6,需要的时候也可以方便地单独加显卡或其他扩展。
但如果你想要一台放在办公室里,小巧可爱的机器,或者需要一台开箱即用的算力,那么买一台搭载395的迷你主机也不是一个坏选择。挑选时请关注机器的散热是否能保证140W boost、长时120 W的性能释放,并且尽可能挑选充分利用PCIe通道的型号(16条通道除去网卡等杂项,应当可做三条x4的M.2或等价的PCIe插槽,但目前大多数产品都只做了两条M.2)。
如果你身处方便购买的国家或地区,Framework的主板也是较好的选择。它是标准ITX版型,带标准ATX24pin和CPU8pin供电、两条M.2和一条PCIe x4插槽,比小主机更占地但散热和配件通用性更好。尽管如此,它也有一些申必的bug和功能缺失,比如主板对PCIe 3.0的硬盘兼容不好,重启可能不认盘;并且bios不能关超线程和IOMMU等。
4.2 那么,我应该给9950X买多少内存?
笔者认为,没有特殊需求的前提下买四槽主板配96 GB 6400c32内存足矣。在大部分任务中,这个配置有更小的内存瓶颈。如果日后出现大内存需求,可以再买96 GB做2DPC获得192 GB,但目前只有微星主板对2DPC高频(>6000)有较好的支持,其他几家目前往往受限于4800甚至更低的频率。
本文所用的单条64 GB内存似乎超频上限较低,怀疑是用的三星颗粒。笔者此前在NewEgg上找到了使用海力士颗粒,标称6400c32的2 * 64 GB套条,但价格有点下不去手。后续有更合适的产品出现的时候也欢迎补充测试。