2009-12-13 5 views
3

Я изучал способы определения ЦП и его возможностей (например, SEE, SSE2 и т. Д.).Обнаружение возможности ЦПУ без сборки

Однако все способы, которые я нашел, связаны с кодом сборки, используя инструкцию cpuid. Учитывая разные способы сборки в c/C++ между компиляторами и даже целями (без встроенной сборки для 64-битных целей под VC), id скорее избегает этого.

Есть ли какая-то простая библиотека вокруг или функции ОС (для обоих окон и linux) для получения этой информации?

В настоящее время меня интересуют только платформы, использующие процессоры x86 и x86-64, и я вызывающе нуждаюсь в поддержке как минимум AMD и Intel.

ответ

4

EDIT: Сначала я googled для «libcpuid», помня о разговоре с программистами-сверстниками, и поисковик Google указал мне на этот sourceforge page, который выглядит довольно устаревшим. Тогда я заметил, что это была страница проекта «libcpu».

Фактически, действительно существует libcpuid, который может удовлетворить ваши потребности.


Последний раз, когда я искал такую ​​библиотеку, я нашел crisscross. Это C++.

Существует также geekinfo.

Но я не знаю кросс-платформенную библиотеку, которая просто делает cpuid.

0

Это настолько зависящее от оборудования --- это аспект, который ОС обычно защищает вас от того, что требуется для кросс-платформенной игры.

Было бы полезно иметь, но я боюсь, вам просто нужно перечислить перекрестный продукт с процессорами и функции, которые вы хотели бы поддержать, умножить количество ОС (здесь два) и написать тесты для всех. Я не думаю, что это было сделано - и кто-то наверняка исправит меня, если я что-то упустил.

Это была бы полезная библиотека, чтобы иметь такую ​​удачу в этом начинании!