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

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

It reads information about the currently used core only, no direct connection with system logical information reported processors.

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 corereports information on the currently used core only, so not system wide and no direct connection with system logical information reported processors.

big - little topology per core: uarch in cpuinfo

EfficiencyClass can mean bigger numbers are big cores while the rest are little cores , but doesn’t guaranteecurrently. In the future it can be changed.

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

Get Cache Partitions and Set

Cpuinfo would need cache partitions and sets, while these are not reported by https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-cache_relationship

https://github.com/pytorch/cpuinfo/blob/master/include/cpuinfo.h#L101