bagaimana cara mengetahui keluarga arsitektur intel dari command line

28

Saya mendapatkan akses ke beberapa mesin xeon untuk memeriksa kinerja. Saya ingin mencari tahu arsitektur apa yang mereka gunakan seperti Haswell, Sandybridge, Ivybridge. Apakah ada perintah untuk mengetahuinya?

seorang insinyur yang ingin tahu
sumber
2
/proc/cpuinfosebenarnya memberi nama model seperti Intel (R) blah blah blah GHz, Anda harus google langsung.
Arthur2e5
Saya meminta keluarga arsitektur
insinyur yang ingin tahu
1
Saya tidak berpikir "keluarga arsitektur" dilaporkan, mereka hanya nama komersial. Anda memasukkan nama model /proc/cpuinfo, saya pikir terserah Anda untuk menerjemahkannya ke nama keluarga yang sesuai.
Gilles 'SANGAT berhenti menjadi jahat'
@Ijustwanttocode Anda harus menggunakan semacam tabel untuk mencari nama-nama komersial tersebut.
Arthur2e5

Jawaban:

45

Ini sedikit solusi yang murah tetapi Anda bisa mendapatkan info itu dari gcc! Saya akan menjelaskan: gcc dapat mengoptimalkan binari untuk setiap bawahan dengan opsi -march. Selain itu, ia dapat mendeteksi milik Anda dan secara otomatis mengoptimalkan untuk mesin Anda dengan -march = asli Dengan asumsi, Anda hanya perlu memanggil gcc dengan march = asli dan menanyakannya bendera apa yang akan digunakan: singkatnya

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

bagi saya itu memberi

-march=                               bdver1

tapi pc saya berjalan dengan prosesor buldoser AMD

Nephanth
sumber
solusi Anda menjawab pertanyaan itu. Ini bekerja untuk saya.
AJN
Ini tidak bekerja untuk saya karena kembali broadwellbukan kabylake. Ini mungkin karena versi gcc saya tidak membedakan kedua keluarga tersebut saat membuat perakitan.
Tyilo
gcc8 dapat mengidentifikasi skylake seperti itu sedangkan gcc5 mengidentifikasi sebagai broadwell.
Eric
8

Anda mungkin tidak bisa karena itu adalah nama pemasaran untuk penjualan komersial, bukan nama "teknis".

Anda dapat, bagaimanapun, mendapatkan apa yang Anda butuhkan dari dmidecode dan kemudian mengunjungi http://ark.intel.com (untuk prosesor Xeon Anda) untuk menentukan keluarga komersial.

[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

Dari hasil itu, saya bisa mengunjungi situs web bahtera Intel dan mencari CPU 3770, yang akan memberi tahu saya bahwa saya memiliki chip Ivy Bridge.

Jason Harris
sumber
1
Untuk melakukannya secara otomatis dengan skrip, saya akan menggunakan dmidecode atau / proc / cpuinfo dan menggabungkannya dengan grep atau awk atau perl dan versi cetak dari daftar xeon cpu di wikipedia yang Anda dapatkan dengan curl atau wget: en.wikipedia.org/ a /…
erik
5

Di bawah ini adalah skrip bash yang secara otomatis menemukan nama kode arsitektur untuk CPU Anda menggunakan /proc/cpuinfodan https://ark.intel.com/ . Agar berhasil, Anda harus menginstal pup .

Menjalankan kode di komputer saya, saya mendapatkan hasil berikut:

$ ./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"
Tyilo
sumber
Ia bekerja dan melakukan apa yang disarankan oleh @erik!
Panayotis
5

Data ini disimpan di PMU_NAME, cukup ketik:

cat /sys/devices/cpu/caps/pmu_name
haswell
wuseman
sumber