0
CPUとGPUが近くに(同じチップ上に)配置されていることをプログラムで検出する最良の方法は何ですか?C++を搭載したWindows上でシステムオンチップ(SOC)プラットフォームを検出
CPUとGPUが近くに(同じチップ上に)配置されていることをプログラムで検出する最良の方法は何ですか?C++を搭載したWindows上でシステムオンチップ(SOC)プラットフォームを検出
API関数GetNativeSystemInfo
(link)を使用して、メインプロセッサに関する情報を取得できます。 SOCであるかどうかは分かりませんが、出発点になる可能性があります。 ではなく、のSOCですが、通常のPC /ラップトップ以外のプラットフォームでは試していません。
PROCESSOR_INTEL_386 (386)
PROCESSOR_INTEL_486 (486)
PROCESSOR_INTEL_PENTIUM (586)
PROCESSOR_INTEL_IA64 (2200)
PROCESSOR_AMD_X8664 (8664)
PROCESSOR_ARM (Reserved)
部材wProcessorLevel
は、ベンダー定義のプロセッサ・レベルを示して:
void WINAPI GetNativeSystemInfo(
_Out_ LPSYSTEM_INFO lpSystemInfo
);
は、この構造は、メンバdwProcessorType
に次の情報が含まれてい(link)
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO;
SYSTEM_INFO
構造を返しwProcessorRevision
には、ベンダが定義したプロセッサのリビジョン番号が表示されます。
この回答は主に別の回答のコピーです。
なぜですか?私はこの知識に基づいてソフトウェアの動作をどのように変更するのか想像できません。 – abelenky
明白な解答を避けるために、裏の理由を残したいと思っていました。とにかく、アプリケーションは、GPUが適切なコンピューティングアルゴリズムを選択するためにCPUメモリにすばやくアクセスできることを知りたいと考えています。 – kvark
あなたはSOCがあるかどうか知りたくありません。 CPU/GPU間に高い帯域幅/低い待ち時間があるかどうかを知りたい。プログラム間で速度を測定することができるはずです。 – abelenky