ClusterHealthDetect A3 Performance
导言
这篇文章记录一次从“pod4 比 pod8 跑 Qwen3.5 397B SFT 慢约 10%”出发的集群健康定位。普通 allgather 打流没有复现差异,并不等于训练链路健康;真实慢点可能在 CPU 绑核、H2D、固定两卡 D2D、背景设备负载、rank-to-core 放置和框架调度之间。ClusterHealthDetect 的作用,是把这些变量拆成可复现实验矩阵,成为训练性能模型里的校准账本。
NUMA使用的目的是为了每个进程能使用local内存来实现高性能。但是假如某进程的local内存提前用完了,会导致无法使用其他进程的内存,反而需要SWAP的问题。(一般小例子遇不到)
https://blog.51cto.com/quantfabric/2594323
https://www.cnblogs.com/machangwei-8/p/10402644.html
因为NUMA默认的内存分配策略是优先在进程所在CPU的本地内存中分配,会导致CPU节点之间内存分配不均衡,当某个CPU节点的内存不足时,会导致swap产生,而不是从远程节点分配内存。这就是所谓的swap insanity 现象。
1 | $ numactl --hardware |
1 | # 遇到内存不够时 |
在Linux系统上,可以通过以下常用方法来查看和分析程序的NUMA(非统一内存访问)情况:
1 | numastat:查看进程和每个NUMA节点的内存分配和访问统计。 |
通过综合使用这些工具,可以全面分析程序的NUMA性能,例如内存分布不均,访问模式导致的不均衡等,然后进行针对优化。
numa_alloc_onnode()和numa_free()等API,在指定节点上分配释放内存。暂无
暂无
首次嘗試採用了全新網格互連架構(Mesh Interconnect Architecture),以取代前面幾代微架構採用的環狀(Ring)互連設計,可以在增加核心數的同時,也能夠維持很快存取資料,以及支援更高記憶體頻寬的需求。

The LLC coherence engine and Home agent (CHA) merges the caching agent and home agent (HA) responsibilities of the chip into a single block. In its capacity as a caching agent the CHA manages the interface between the core the IIO devices and the last level cache (LLC).
NUMA架构、非統一記憶體存取架構 (Non-uniform memory access)中最重要的两个部分是:QPI architecture和memory subsystem。
LLC(一般指L3 Cache)是memory subsystem中最为重要的一个组成部分。Sandy Bridge架构之后,每个core都有自己的LLC(last level cache),然后通过一个ring on-die Interconnect来联通。
SnoopFilter,探听过滤器是为了在多核心乃至多处理器的协同工作时,保持缓存一致性(CacheCoherent)。
在统一总线架构中,一个处理器的所有操作都可以被其他处理器看到,因此处理器可以利用一种叫做Snoop(侦听)的操作来监视总线上的缓存操作指令,当侦听到其他处理器的操作涉及到本处理器上的共享缓存页面的时候,就可以进行相关的操作来保持缓存一致性(通常,就是使本地的缓存页面变为Invalid无效)。

如图,在Skylake core的基础上加入了AVX和额外的L2 cache
可以看见寄存器都在绿色的Scheduler里
FMA指令集(英语:Fused-Multiply-Add,即积和熔加运算)是x86架构微处理器上的指令集。FMA指令集是128位和256比特的流式单指令流多资料流扩展集(SSE)指令集,以进行积和熔加运算。[1]FMA指令集允许创建新的指令并有效率地执行各种复杂的运算,可结合乘法与加法运算(即进行积和熔加运算),通过单一指令执行多次重复计算,从而简化程序,从而使系统能快速执行绘图、渲染、照片着色、立体音效,及复杂向量运算等计算量大的工作。
暂无
暂无
架构的手册 https://github.com/RRZE-HPC/likwid/wiki/SkylakeSP#fixed-purpose-counters