pytorch/cpuinfo

CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)

解决的问题

提供一种跨平台的方式来检测主机 CPU 的详细硬件信息,这对于性能优化至关重要。它允许开发者识别特定的微架构、支持的指令集以及处理器的缓存层次结构,从而编写能够利用硬件特定优化的代码。

工作原理

该库使用多种平台特定的方法来提取 CPU 数据,包括 x86 上的 CPUID 叶子、ARM/Linux 上的 /proc/cpuinfogetauxval,以及 Windows 上的系统 API(如 GetLogicalProcessorInformationEx)。它处理了不同操作系统(Linux、Windows、macOS、Android、iOS、FreeBSD)和架构(x86、x86-64、ARM、ARM64)的复杂性,提供统一的 C/C++ 接口。

适用人群

需要在运行时检测 CPU 特性的系统程序员和性能工程师,用于分派到优化的内核或处理异构核心配置(如 ARM big.LITTLE)。

主要亮点

  • 跨平台支持:可在主要操作系统和多种 CPU 架构上运行。
  • 详细的硬件检测:可识别 SoC 名称、微架构、缓存大小和拓扑结构。
  • 指令集检测:可检测 x86 的 AVX512 和 ARMv8.3 扩展功能的支持情况。
  • 生产就绪:线程安全,初始化后无内存分配,并包含对硬件和操作系统内核 bug 的绕过方案。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目