从AMD的“小芯片”设计,谈谈平衡的内存配置

黄瑶 企业网D1net 3天前

 AMD,YES!

   AMD,真香!  





如果你关注CPU,这两句话想必再熟悉不过了吧

的确,AMD近几年在CPU领域

可谓是大放异彩

不仅是消费级和企业级市场

在资本市场也备受热捧

其股价六年翻了近20倍

并创下20年新高

作为一家芯片制造商

AMD的异军突起

必然和自家芯片脱离不了关系

今天,我们就来谈点干货

聊一聊芯片设计






小芯片”

AMD实现弯道超车


10nm及以下的制程工艺的推动下,CPU核心数量,高速I/O通道,DDR通道,嵌入式内存和其他功能的增长速度远超历史。使用传统的单片CPU芯片(Monolithic die)架构和实施,从产量和成本的角度来看将越来越难

业界需要新的和基板封装方法可以确保未来的CPU能够经济地扩展。尽管多芯片模块MCM)已经存在了好几代,但通常用于将封装内的多个分立器件管芯连接在一起,以节省空间或改善信号完整性并且芯片间互连的宽度受到限制,需要大功率I/O驱动器或SerDes

如今芯片和封装方面的改进允许设备或元素(例如服务器CPU“管脚”或“SOC”)由多个子CPU芯片组成,通常称为小芯片(chiplets),从而弥补了以往明显的性能或功耗缺点,成为近年来的大热门

CPU芯片设计的演进如下图所示▼

❑ 近年来最成功的Chiplet设计无疑就是AMD的第二代EPYC服务器CPU(代号“罗马”)。一个IO芯片(IOD)和多达八个8核CPU高速缓存芯片(CCD)布置在CPU封装基板上,从而实现了互连

因为CPU是由单个整体式芯片制成,CCD和IOD不会对CPU造成任何明显的延迟或带宽影响。同时,由于单个CCD和IOD芯片的尺寸只是等效单片芯片的尺寸的一小部分,因此可以实现芯片成品率的大幅提高

此外,这种“小芯片”方法允许CCD使用比IOD更先进的工艺从而节省更多成本

❑ 另一个例子是英特尔最近宣布的EMIB嵌入式多管芯互连桥)和Foveros(2D和3D管芯封装和堆叠)技术。

EMIB只需要一个小的嵌入式片连接,即可将两个小芯片绑在一起,并具有高带宽和短距离。如今,EMIB已用于英特尔FPGA和Kaby Lake-G中,从而将GPU连接至封装内的高带宽内存

而Foveros是一种堆叠技术,它使用TSV(通过通孔),例如,可以有效地连接独立的IO,内核和内存芯片


“小芯片”

也带来了NUMA问题


随着CPU以及GPUFPGAAI/ML芯片继续集成大量的计算元素,异构计算元素,封装内存(如DRAMHBM、SCM等)和IO技术,对"小芯片"式封装的需要已成为提高产量、上市时间、开发风险和更多线性计算成本的必要条件,这将推动客户采用

但是针无两头利,“小芯片”设计在带来可扩展性和经济性的同时,也复杂化了NUMA问题。非均匀的内存访问(NUMA)是计算机体系架构永恒的的话题,下图简单描述了该问题

针对该问题,各种软件调优措施应运而生:调BIOS,调OS,调应用软件。

如下图服务器BIOS设置▼

 操作系统关闭NUMA操作:

https://www.cnblogs.com/digdeep/p/10013779.html

 数据库启用NUMA的调整,如下链接:

  • Enable Oracle NUMA support with Oracle Server Version 11gR2


    注:示例存档版本偏低,对应的Oracle版本可以在官网找到对应的KB)https://support.oracle.com/knowledge/Oracle%20Cloud/864633_1.html

  • MySQL也是如此,请关注我们后续的文章

但是!但是!很多人甚至软件专家都忘了,软件NUMA调优的前提是:平衡的内存配置。合理的CPU/内存配比才是后续软件调优的基础!不然再怎么调也于事无补。

我们还是以AMD罗马CPU为例▼

第二代AMD EPYC 7002 CPU封装由9个MCM组成。其中的8个MCM分为4个象限,每个象限最多具有2个CCDs。所有4个象限的CCD通过1个中央I/ODie(IOD)的IO模块通信。单个象限CCDs上的所有内核共享两条最近的内存通道。其余的内存通道需穿过IOD,有较高的内存延迟(NUMA问题)。

根据第二代EPY CCPU的设计理念,满配16条同样的内存无疑会取得最佳性能,第二选择是占据每个通道的8条同色系的同样内存,如下图的A1-A8。

上述两种情况是最优配置。所谓的平衡内存配置是除上述两种情况之外的次优配置,其宗旨是用足本象限内的两条内存控制器以取得最佳的本地内存访问性能,不考虑远端内存访问以减少内存数量

不同CPU有不同的推荐,推导过程留给感兴趣的朋友,这里直接给出结论▼

为便于大家理解还是贴出了最后三行所列CPU的架构图如下,你品,你细品。

看明白了那是真搞明白了Chiplet带来的NUMA新问题。

相对,这代的Intel至强SP2)还是传统的单个大芯片(Monolithic die)设计,NUMA问题要简单的多,最佳/平衡的内存配置是12/6条内存/CPU,不论CPU是铂金,金还是银铜。很多用户只关心内存的容量而忽略了数量的重要性

举个例子,4条16GB内存的配置在绝大多数场景性能是要大大优于单条64GB内存的,原因是占据更多的内存通道并且部分规避了NUMA问题。你要问非平衡的内存配置性能有多差,Intel给出了下图。


最后打一下广告戴尔易安信提供业界最全的AMD第二代EPYC产品组合,包括单插槽PowerEdge服务器R6515和R7515,两路服务器R6525和R7525,以及计算密集型服务器C6525,各种配置以供不同选择。无论医疗、教育,还是计算密集型领域都能发挥的游刃有余、恰到好处。


END


动手指“”它

进入戴尔易安信解决方案中心


点击“阅读原文”了解更多数字化转型解决方案