为何EPYC 4 NUMA2模式核心间延迟差?EPYC 9564测试异常求解
双路EPYC 9564 NUMA2模式核心间延迟反常问题分析
1. EPYC 4(Genoa)NUMA2模式的架构本质
EPYC 4系列的NUMA2模式会将单Socket内的每个CCD(核心复合芯片)拆分为独立NUMA节点,而非NUMA1模式下整个Socket作为单一NUMA域。这种拆分导致单Socket内跨CCD的核心通信,需要经过Socket内部的UPI链路中转(而非CCD间直连Mesh),本身就会带来额外延迟开销。若第二个Socket的CCD路由配置或链路调度存在异常,就会出现内部延迟高于跨Socket通信的反常情况。
2. 与EPYC 7R13现象的共性逻辑
你提到的EPYC 7R13(Milan)的反常延迟,核心原因是CCD间通信路径的非对称性:部分CCD组合的通信需绕经Socket的UPI控制器,而非直接Mesh互联。EPYC 9564延续了多CCD封装设计,NUMA2模式会放大这种路径差异——当第二个Socket内核心跨CCD通信时,若链路优先级或硬件路由偏向跨Socket通信,就会出现内部延迟反超的结果。
3. 反常结果的具体诱因
- BIOS配置错误:NUMA2模式下的CCD绑定策略、UPI链路带宽分配、内存亲和性设置偏离官方推荐,可能强制第二个Socket内部走低效通信路径。
- 测试工具的线程绑定偏差:core-to-core-latency工具若未严格将测试线程绑定到目标核心,可能误测跨NUMA域的通信,导致数据失真。
- 硬件链路异常:第二个Socket的内部Mesh链路存在瑕疵,或UPI控制器调度逻辑异常,使得内部通信优先级低于跨Socket通信。
4. 验证与修复建议
- 切换至NUMA1模式重新测试,对比延迟数据,确认是否为NUMA2模式的架构特性导致。
- 检查BIOS中
NUMA Mode、CCD Affinity、UPI Link Speed等配置项,对齐AMD官方双路部署参数。 - 使用
numactl严格绑定线程到第二个Socket的核心,排除调度干扰后重测:numactl --cpunodebind=1 --membind=1 ./core-to-core-latency - 参考AMD EPYC Genoa官方优化指南,核对NUMA2模式的最佳配置实践。

内容的提问来源于stack exchange,提问作者wang fuqiang
相关产品推荐
相关产品推荐

