【教程】查看CPU、GPU架构的拓扑结构和系统信息

转载请注明出处:小锋学长生活大爆炸[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

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

相关推荐
XY.散人11 分钟前
初识Linux · 信号处理 · 续
linux·信号处理
19004316 分钟前
linux复习5:C prog
linux·运维·服务器
猫猫的小茶馆26 分钟前
【C语言】指针常量和常量指针
linux·c语言·开发语言·嵌入式软件
朝九晚五ฺ1 小时前
【Linux探索学习】第十五弹——环境变量:深入解析操作系统中的进程环境变量
linux·运维·学习
ernesto_ji1 小时前
Jenkins下载安装、构建部署到linux远程启动运行
linux·servlet·jenkins
李迟2 小时前
某Linux发行版本无法使用nodejs程序重命名文件问题的研究
java·linux·服务器
酷酷学!!!2 小时前
Linux基础指令(汇总)
linux·运维·服务器
枫叶丹42 小时前
【在Linux世界中追寻伟大的One Piece】手写序列化与反序列化
linux·运维·网络
韦德斯3 小时前
嵌入式Linux的RTC读写操作应用
linux·运维·c语言·arm开发·实时音视频