2009-12-13 6 views
3

저는 CPU와 그 기능 (예 : SEE, SSE2 등)을 결정하는 방법을 조사했습니다.어셈블리없이 CPU 기능 감지

그러나 내가 발견 한 모든 방법은 cpuid 명령을 사용하는 어셈블리 코드와 관련이 있습니다. 컴파일러와 타겟 사이의 c/C++ 어셈블리 (VC 아래의 64 비트 타겟을위한 인라인 어셈블리가 아님)를 수행하는 방법이 다르다는 점을 감안할 때 id를 사용하지 마십시오.

이 정보를 얻기 위해 몇 가지 간단한 라이브러리 또는 OS 기능 (Windows 및 Linux 용)이 있습니까?

현재 저는 x86 및 x86-64 CPU를 사용하는 플랫폼에만 관심이 있습니다. 적어도 AMD와 Intel을 지원해야합니다.

답변

4

EDIT : 처음에는 피어 프로그래머와의 대화를 기억하는 "libcpuid"를 찾아 봤는데 Google 검색에서이 점을 지적했습니다. sourceforge page은 꽤 오래된 것 같습니다. 그렇다면 "libcpu"프로젝트 페이지였습니다.

실제로 실제로는 libcpuid이 필요합니다. 나는 그런 도서관을 찾았다


마지막으로, 나는 crisscross을 발견했다. C++입니다.

geekinfo도 있습니다.

하지만 cpuid를 사용하는 크로스 플랫폼 라이브러리에 대해서는 알지 못합니다.

0

이것은 하드웨어에 종속적인데, 이는 OS가 보통 여러분을 보호 해주는 측면입니다. 크로스 플랫폼을 요구하는 것은 다소 어렵습니다.

유용 할 것이지만, 당신이 지원하고자하는 CPU와 제품의 교차 제품을 열거하고 OS 수 (두 개)를 곱하고 모든 것에 대해 테스트를 작성해야 할 수도 있습니다. 나는 그것이 끝났다고 생각하지 않습니다. 누군가가 간과한다면 누군가가 반드시 저를 바로 잡을 것입니다.

그게 유용한 라이브러리가 될 것이므로, 행운을 빈다.

1

/proc/cpuinfo의 linux peek 아래

관련 문제