Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

In progress…

https://github.com/pytorch/cpuinfo#cpu-information-library

Table of Contents
minLevel1
maxLevel7
outlinetrue

Information is needed by cpu info

Concept

Data representation

Information is available through MSDN API

Concept

Data representation

Background:

Concerns

Cluster as a missing entity on x86 (respectively on Windows)

Missing topology APIs for Arm on Windows

Get vendor and SoC name

wmic overhead

Read MIDR

Registry

Code Block
PS C:\kg\python_test\github_packages\cpuinfo> reg query HKLM\Hardware\Description\System\CentralProcessor\0 /v ProcessorNameString

HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralProcessor\0
    ProcessorNameString    REG_SZ    Microsoft SQ2 @ 3.15 GHz

wmic

https://docs.microsoft.com/en-us/windows/win32/wmisdk/example-creating-a-wmi-application

Code Block
wmic cpu list /format:list

AddressWidth=64
Architecture=12
Availability=3
Caption=ARMv8 (64-bit) Family 8 Model 805 Revision D0E
ConfigManagerErrorCode=
ConfigManagerUserConfig=
CpuStatus=1
CreationClassName=Win32_Processor
CurrentClockSpeed=3148
CurrentVoltage=11
DataWidth=64
Description=ARMv8 (64-bit) Family 8 Model 805 Revision D0E
DeviceID=CPU0
ErrorCleared=
ErrorDescription=
ExtClock=
Family=280
InstallDate=
L2CacheSize=1280
L2CacheSpeed=
LastErrorCode=
Level=2053
LoadPercentage=7
Manufacturer=Qualcomm Technologies Inc
MaxClockSpeed=3148
Name=Microsoft SQ2 @ 3.15 GHz
OtherFamilyDescription=
PNPDeviceID=
PowerManagementCapabilities=
PowerManagementSupported=FALSE
ProcessorId=0000000000000000
ProcessorType=3
Revision=3342
Role=CPU
SocketDesignation=Qualcomm
Status=OK
StatusInfo=3
Stepping=14
SystemCreationClassName=Win32_ComputerSystem
SystemName=040644303253
UniqueId=
UpgradeMethod=6
Version=Model 13, Stepping 14
VoltageCaps=

Read MIDR

Not available in userspace in WoA

https://developer.arm.com/documentation/ddi0595/2021-06/AArch64-Registers/MIDR-EL1--Main-ID-Register

Get processor type per core

GetSystemInformation works on running core

big - little topology per core: uarch in cpuinfo

EfficiencyClass can mean bigger numbers are big cores while the rest little cores, but doesn’t guarantee

PROCESSOR_RELATIONSHIP (winnt.h) - Win32 apps | Microsoft Docs

Get Cache Partitions and Set