intel mimarlık ailesi komut satırından nasıl öğrenilir


28

Performansı kontrol etmek için bazı xeon makinelerine erişiyorum. Haswell, Sandybridge, Ivybridge gibi hangi mimarileri kullandıklarını öğrenmek istiyorum. Bunu bulmak için bir komut var mı?


2
/proc/cpuinfoaslında model adını verir, Intel (R) blah blah blah GHzdoğrudan google gerekir.
Arthur2e5

Mimarlık ailesini
meraklı bir mühendis

1
“Mimari aile” nin rapor edildiğini sanmıyorum, sadece ticari isimler. Model adını girdiniz /proc/cpuinfo, sanırım bunu ilgili aile adına çevirmek size kalmış.
Gilles 'SO- kötülük' dur

@Justwanttocode Bu ticari isimleri bulmak için bir tür tablo kullanmanız gerekir.
Arthur2e5

Yanıtlar:


45

Biraz geçici bir çözüm olabilir, ancak bu bilgiyi gcc'den alabilirsiniz! Açıklayacağım: gcc, -march seçeneğiyle her alt bölüm için ikili dosyaları optimize edebilir. Üstelik, sizinkileri algılayabilir ve makineniz için otomatik olarak -march = native ile optimize edebilir. Varsayalım ki, gcc'yi march = native ile çağırmanız ve hangi bayrakları kullanacağını sormanız yeterlidir.

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

benim için verir

-march=                               bdver1

ama bilgisayarım bir amd buldozer işlemci ile çalışıyor


Çözümün soruya cevap veriyor. Benim için çalışıyor.
AJN

Döndürdüğü gibi bu benim için çalışmaz broadwellyerine kabylake. Muhtemelen bunun nedeni, benim gcc sürümümün bu iki aileyi montaj üretirken ayırt etmemesidir.
Tyilo

gcc8, skylake'i tanımlayabilirken, gcc5 gerçekten de broadwell olarak tanımlamaktadır.
Eric,

8

Muhtemelen yapamazsınız, çünkü bunlar “teknik” isim değil, ticari satış için pazarlama ismidir.

Bununla birlikte, dmidecode'dan ihtiyacınız olanı edinebilir ve ardından ticari aileyi belirlemek için http://ark.intel.com adresini (Xeon işlemciniz için) ziyaret edebilirsiniz .

[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

Bu çıktıdan sonra, Intel'in ark web sitesini ziyaret edip 3770 işlemciyi arayabilirdim, bu da benim bir Ivy Bridge çipine sahip olduğumu söylerdi.


1
Bir komut dosyasıyla otomatik hale getirmek için dmidecode veya / proc / cpuinfo komutunu kullanırdım ve onu grep veya awk veya perl ile ve xeon cpu listesinin yazdırılabilir halini curl veya wget ile elde edeceğiniz wikipedia ile birleştiririm: en.wikipedia.org/ w /…
erik

5

Aşağıda otomatik kullanarak CPU için mimari kod adını bulan bir bash script /proc/cpuinfove https://ark.intel.com/ . Çalışabilmek için yavru kurmuş olmanız gerekiyor .

Bilgisayarımda kod çalıştırarak aşağıdaki sonucu alıyorum:

$ ./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"

Çalışır ve @ erik önerdiği şeyi yapar!
Panayotis

5

Bu veriler PMU_NAME içinde saklanır, sadece şunu yazın:

cat /sys/devices/cpu/caps/pmu_name
haswell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.