2012-02-16 9 views
0

CPUとGPUが近くに(同じチップ上に)配置されていることをプログラムで検出する最良の方法は何ですか?C++を搭載したWindows上でシステムオンチップ(SOC)プラットフォームを検出

+0

なぜですか?私はこの知識に基づいてソフトウェアの動作をどのように変更するのか想像できません。 – abelenky

+1

明白な解答を避けるために、裏の理由を残したいと思っていました。とにかく、アプリケーションは、GPUが適切なコンピューティングアルゴリズムを選択するためにCPUメモリにすばやくアクセスできることを知りたいと考えています。 – kvark

+2

あなたはSOCがあるかどうか知りたくありません。 CPU/GPU間に高い帯域幅/低い待ち時間があるかどうかを知りたい。プログラム間で速度を測定することができるはずです。 – abelenky

答えて

0

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には、ベンダが定義したプロセッサのリビジョン番号が表示されます。

この回答は主に別の回答のコピーです。

関連する問題