如何从命令行中找出英特尔架构家族


28

我可以使用某些至强计算机来检查性能。我想找出他们正在使用的架构,例如Haswell,Sandybridge和Ivybridge。有命令可以找出答案吗?


2
/proc/cpuinfo实际上给出的模型名称为Intel (R) blah blah blah GHz,您应该直接对其进行Google搜索。
Arthur2e5

我当时要求的是建筑家庭
一位好奇的工程师

1
我不认为有“架构家族”的报道,它们只是商业名称。您可以在中找到型号名称/proc/cpuinfo,我认为这取决于您将其转换为相应的姓氏。
吉尔(Gilles)'“ SO-不要邪恶”

@Ijustwanttocode您必须使用某种表来查找那些商业名称。
Arthur2e5 2015年

Answers:


45

这是一个便宜的解决方法,但是您可以从gcc获得该信息!我将说明:gcc可以使用-march选项为每个子架构优化二进制文件。此外,它能够检测到您的机器并使用-march = native自动优化您的计算机假设是这样,您只需要用march = native调用gcc并询问它将使用什么标志即可:

gcc -march=native -Q --help=target|grep march

对我来说

-march=                               bdver1

但是我的电脑运行的是amd buldozer处理器


您的解决方案可以回答问题。这个对我有用。
AJN

这对我不起作用,因为它返回broadwell而不是kabylake。这可能是因为我的gcc版本在生成程序集时没有区分这两个系列。
蒂洛

gcc8可以这样识别出天空湖,而gcc5确实可以识别为宽井。
埃里克(Eric)

8

您可能不能,因为这些是用于商业销售的市场名称,而不是“技术”名称。

但是,您可以从dmidecode获得所需的内容,然后访问http://ark.intel.com(适用于Xeon处理器)来确定商业系列。

[root@mediasrv ~]# dmidecode|grep -i intel
        Socket Designation: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
        Manufacturer: Intel
        Version: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz

从该输出中,我可以访问英特尔的方舟网站并搜索3770 CPU,这将告诉我我有一个Ivy Bridge芯片。


1
要使用脚本自动执行此操作,我将使用dmidecode或/ proc / cpuinfo并将其与grep或awk或perl以及wikipedia上的xeon cpu列表的可打印版本(可通过curl或wget获得)组合:en.wikipedia.org/ w /…
erik

5

以下是一个bash脚本,该脚本使用/proc/cpuinfohttps://ark.intel.com/自动为您的CPU查找架构代码名称。要工作,需要安装小狗

在计算机上运行代码,我得到以下结果:

$ ./intel_codename
Processor name: i7-7700HQ
Kaby Lake

#!/bin/bash

set -euo pipefail

if [[ $# == 0 ]]; then
    modelname=$(cat /proc/cpuinfo | grep 'model name' | head -1)
    if ! grep Intel <<<"$modelname" > /dev/null; then
        echo "You don't seem to have an Intel processor" >&2
        exit 1
    fi

    name=$(sed 's/.*\s\(\S*\) CPU.*/\1/' <<<"$modelname")
    echo "Processor name: $name" >&2
else
    name=$1
fi

links=($(curl --silent "https://ark.intel.com/search?q=$name" | pup '.result-title a attr{href}'))

results=${#links[@]}
if [[ $results == 0 ]]; then
    echo "No results found" >&2
    exit 1
fi

link=${links[0]}
if [[ $results != 1 ]]; then
    echo "Warning: $results results found" >&2
    echo "Using: $link" >&2
fi

url="https://ark.intel.com$link"
codename=$(curl --silent "$url" | pup '.CodeNameText .value text{}' | xargs | sed 's/Products formerly //')

echo "$codename"

它的工作原理和@erik建议的一样!
Panayotis

5

此数据存储在PMU_NAME中,只需键入:

cat /sys/devices/cpu/caps/pmu_name
haswell
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.