How to determine the micro-architecture of a system's Intel CPU.

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux
  • Intel CPUs

Issue

  • How to determine the micro-architecture of a system's CPU.

Resolution

  • The cpuid command provides the micro-architecture.

    # cpuid -1 | grep \(synth\)
           (synth) = Intel Core i*-8000U (Whiskey Lake-U V0) [Kaby Lake] {Skylake}, 14nm+/14nm++
    
  • The command cpuid does not come pre-installed in Red Hat Enterprise Linux, it will need to be installed with yum.

  • Please note that cpuid man page does mention that it may have limitations around new or less common hardware.

    # man cpuid
    ...
    LIMITATIONS
           There are numerous cases where there is no way to  distinguish  between  various  CPUs  in  the
           (synth) information.  In some cases, the sizes of caches, number of cores, brand strings, etc.,
           can be used to distinguish multiple CPUs with the same family and model.  But there  are  cases
           where that information is insufficient.  Whenever cpuid is unable to distinguish between multi‐
           ple CPUs, it will list all known possibilities.
    
           If you believe that a certain processor should be distinguishable from another  and  it  isn't,
           please inform the author of this tool.
    
           The  (multi-processing  synth)  information  is  unreliable  on many processors.  It faithfully
           reports the information provided by the CPUID instruction and decodes it as recommended by  the
           processor  manufacturers,  but  often  that information is incorrect.  The information seems to
           indicate the architecture's capabilities, rather than what the particular chip  actually  does.
           In  particular,  it seems commonplace to claim the presence of multiple hyperthreads when there
           is only one.
    ...
    

Root Cause

  • With Intel CPUs, micro-architecture is referred to as "Code Name" within the Intel Ark.

Diagnostic Steps

  • The cpuid command provides the micro-architecture.

  • As an example, it's possible to determine the CPU by reading the file /proc/cpuinfo.

    $ cat /proc/cpuinfo | head | grep "model name"
    model name  : Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
    
  • The CPU i7-8665U has the micro-architecture "Whiskey Lake".

    $ cpuid -1 | grep \(synth\)
           (synth) = Intel Core i*-8000U (Whiskey Lake-U V0) [Kaby Lake] {Skylake}, 14nm+/14nm++
    
  • And we can confirm this by referencing the Intel Ark page for this particular CPU.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments