2009-12-13 13 views
3

Je cherchais des moyens de déterminer la CPU et ses capacités (par exemple, SEE, SSE2, etc.). Cependant, toutes les méthodes que j'ai trouvées impliquaient un code d'assemblage utilisant l'instruction cpuid. Étant donné les différentes façons de faire l'assemblage en c/C++ entre les compilateurs et même les cibles (pas d'assemblage en ligne pour les cibles 64 bits sous VC), id évite plutôt cela.Détection de la capacité de l'unité centrale sans montage

Existe-t-il une bibliothèque simple ou des fonctions OS (pour Windows et Linux) pour obtenir cette information?

Actuellement, je ne suis intéressé que par les plates-formes utilisant les processeurs x86 et x86-64, et j'ai besoin de supporter au moins AMD et Intel.

Répondre

4

EDIT: Au début, j'ai recherché sur Google "libcpuid" en me souvenant d'une conversation avec des programmeurs homologues, et la recherche google m'a pointé vers ce sourceforge page qui a l'air assez désuet. Puis j'ai remarqué que c'était la page de projet de "libcpu".

En fait, il y a vraiment un libcpuid qui pourrait répondre à vos besoins.


La dernière fois que je cherchais une telle bibliothèque, je trouve crisscross. C'est C++ cependant.

Il existe également geekinfo.

Mais je ne connais pas une bibliothèque multi-plateforme qui ne fait que cpuid.

0

Cela dépend tellement du matériel --- qui est un aspect dont le système d'exploitation vous protège habituellement --- qui exige qu'il soit multi-plateforme est un peu difficile.

Il serait utile d'avoir, mais je crains que vous ayez juste à énumérer le produit croisé des CPU et des fonctionnalités que vous souhaitez supporter, multipliez le nombre d'OS (ici deux) et écrivez des tests pour tous. Je ne pense pas que cela a été fait - et quelqu'un me corrigera sûrement si j'ai oublié quelque chose.

Ce serait une bibliothèque utile à avoir, alors bonne chance avec l'effort!

1

Sous linux peek dans/proc/cpuinfo