태그 보관물: cpu-architecture

cpu-architecture

커맨드 라인에서 인텔 아키텍처 제품군을 찾는 방법 제온 머신에 액세스 할 수

성능을 확인하기 위해 일부 제온 머신에 액세스 할 수 있습니다. Haswell, Sandybridge, Ivybridge와 같은 아키텍처를 사용하고 싶습니다. 이것을 알아내는 명령이 있습니까?



답변

약간의 저렴한 해결 방법이지만 gcc에서 해당 정보를 얻을 수 있습니다! 설명하겠습니다 : gcc는 -march 옵션을 사용하여 각 하위 조직에 대한 바이너리를 최적화 할 수 있습니다. 또한 -march = native를 사용하여 사용자를 감지하고 컴퓨터에 자동으로 최적화 할 수 있으므로 march = native로 gcc를 호출하고 사용할 플래그를 물어보십시오.

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

나를 위해 그것은 준다

-march=                               bdver1

하지만 내 PC는 amd buldozer 프로세서로 실행됩니다.


답변

“기술적”이름이 아닌 상업용 판매용 마케팅 이름이기 때문에 아마도 불가능할 것입니다.

그러나 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 칩이 있음을 알 수 있습니다.


답변

다음은 자동으로 사용하여 CPU의 아키텍처 코드 명을 발견 bash는 스크립트 /proc/cpuinfohttps://ark.intel.com/은 . 작동하려면 강아지가 설치되어 있어야합니다.

내 컴퓨터에서 코드를 실행하면 다음 결과가 나타납니다.

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