3

私はCPUとその機能(SEE、SSE2など)を決定する方法を検討してきました。

ただし、私が見つけたすべての方法には、cpuid命令を使用したアセンブリコードが含まれていました。コンパイラとターゲットの間でc/c ++でアセンブリを実行する方法が異なることを考えると(VCでは64ビットターゲットのインラインアセンブリはありません)、idはむしろそれを避けます。

この情報を取得するための簡単なライブラリ、またはOS関数(WindowsとLinuxの両方)はありますか?

現在、私はx86およびx86-64 CPUを使用するプラットフォームにのみ興味があり、少なくともAMDとIntelをサポートする必要があります。

4

3 に答える 3

4

編集:最初、私はピアプログラマーとの会話を思い出して「libcpuid」をグーグルで検索しました、そしてグーグル検索は私にかなり時代遅れに見えるこのsourceforgeページを指摘しました。すると「libcpu」のプロジェクトページだと気づきました。

実際、あなたのニーズに合うかもしれないlibcpuidが本当にあります。


前回そのような図書館を探したとき、十字架を見つけました。ただし、C++です。

geekinfoもあります。

しかし、cpuidを実行するだけのクロスプラットフォームライブラリはわかりません。

于 2009-12-13T15:36:56.153 に答える
1

Linuxの下で/proc/cpuinfoを覗いてみてください

于 2010-02-05T11:24:05.837 に答える
0

これは非常にハードウェアに依存します---これはOSが通常あなたを保護する側面です---クロスプラットフォームである必要があるのは少し難しいです。

持っていると便利ですが、サポートしたいCPUと機能の外積を列挙し、OSの数(ここでは2つ)を掛けて、すべてのテストを作成する必要があるかもしれません。私はそれが行われたとは思いません-そして私が何かを見落とした場合、誰かがきっと私を訂正するでしょう。

それは持っていると便利なライブラリになるので、頑張って頑張ってください!

于 2009-12-13T15:34:45.707 に答える