转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

一些概念

  • Package:处理器封装。在多处理器系统中,每个物理 CPU 芯片通常被封装在一个单独的封装中,这个封装被称为 Package。一个 Package 可以包含一个或多个物理 CPU 核心。每个 Package 通常连接到一个或多个内存控制器,以提供对系统内存的访问。
  • NUMA Node:NUMA 节点。NUMANode 是 NUMA 架构中的一个重要概念。在 NUMA 架构中,系统内存被划分为多个 NUMA Node。每个 NUMA Node 包含与之关联的一部分系统内存和一组 CPU 核心。NUMA Node 是处理器和内存的逻辑组合,它们共享一定的物理资源,如内存控制器和高速缓存。
  • Socket:插槽。通常用于描述物理 CPU 芯片的插槽或座槽,它是在主板上插入 CPU 芯片的物理接口。家用 PC 通常为单 socket,服务器通常可支持 2 socket,也有 4 或者 8 socket。不同的 socket 之间通常通过高速总线连接。
  • NUMA affinity:NUMA 亲和性。指的是将任务或进程与特定 NUMA 节点相关联的能力。通过设置 NUMA affinity,可以指定任务在特定 NUMA 节点上运行,以最大程度地减少远程内存访问和提高性能。当一个任务与特定 NUMA 节点相关联时,它将更有可能使用与该节点关联的本地内存。本地内存是指与任务运行在同一 NUMA 节点上的 CPU 相关联的内存。这种本地内存访问速度更快,因为它与 CPU 直接相连,而远程内存访问则需要通过跨节点的内存互连进行访问,速度较慢。
  • CPU Affinity:CPU亲和性。指的是将特定的计算任务或进程与特定的CPU核心或CPU组进行关联的能力。它用于指定将任务分配给哪个CPU核心或一组CPU核心来执行。通过设置CPU Affinity,可以控制任务在多核系统中的调度和执行方式,以优化性能或满足特定的需求。
  • Root Complex:一个PCIe总线结构中的顶级主机桥。它通常位于CPU芯片上,负责连接CPU与其他设备,如GPU、网卡、存储控制器等。Root complex是整个PCIe总线层次结构的起点,它通过PCIe连接到其他设备或桥接器,形成一个扩展的PCIe网络。Root complex扮演着PCIe总线的控制器角色,它管理和协调数据流经过PCIe总线的交互。它负责在不同的PCIe设备之间进行数据传输和通信,以及处理地址分配和DMA(直接内存访问)请求。

  • PCIe:是一种高速串行扩展总线标准,用于在计算机系统中连接各种外部设备和扩展卡。它是 PCI总线的一种进化和替代。PCIe 总线采用串行数据传输,相比于并行传输的 PCI 总线,具有更高的带宽和更低的延迟。它是现代计算机系统中常用的连接标准,用于连接GPU、网络适配器、存储控制器、声卡等各种设备。PCIe 标准定义了不同的物理插槽尺寸和版本,例如 PCIe x1、PCIe x4、PCIe x8 和 PCIe x16,表示不同的物理通道数量和带宽。PCIe 还支持多代链接和多级拓扑结构,以满足更高的性能需求和系统配置。

拓扑结构

  • 查看NUMA节点数、socket数、核心数、每个socket的核心数、每个核心的线程数等信息
lscpu

因此,有2个物理插槽+2块CPU,每块CPU插在一个插槽里。每块CPU有20个核心,每个核心有2个超线程。主板型号为Intel,NUDA使用连续编号方式,每个NUMA节点分到2组CPU核心。

  • 查看GPU拓扑结构
nvidia-smi topo -m

因此,GPU0、GPU1、GPU2连接到了同一个PCIe Switch上;GPU3、NIC0、NIC1连接到了另一个PCIe Switch上。并且,这两个PCIe switch连在同一个CPU的两个Root Complex下;

  • 查看GPU信息
nvidia-smi

  • 查看GPU对应PCIe的版本
nvidia-smi -q

  • 查看硬件连接
sudo apt install hwloc
lstopo

系统信息

sudo apt install hardinfo
hardinfo

可以查看系统的各类硬件信息。