2

私のシステムには 32GB の RAM がありますが、Intel OpenCL 実装のデバイス情報には「CL_DEVICE_GLOBAL_MEM_SIZE: 2147352576」(~2GB) と表示されています。

私は、CPU プラットフォームではグローバル メモリが「通常の」RAM であるため、OpenCL CPU の実装で約 30 GB 以上を使用できるようにする必要があるという印象を受けました。(もちろんSDKは64bit版を使用しています)

グローバル メモリを増やしてすべてのシステム メモリを使用するように Intel OpenCL ドライバに指示する秘密の設定はありますか?

4

1 に答える 1

1

解決済み: すべてを 64 ビットに再コンパイルすることで動作するようになりました。かなりばかげているように見えますが、OpenCL は OpenGL と同様に機能していると思いました。たとえば、32 ビット プロセスから 8GB のテクスチャ メモリを簡単に割り当てることができ、ドライバーが詳細を処理します (もちろん、1 回のスイープで 8GB を割り当てることはできません。ただし、合計で 4GB を超える複数のテクスチャを転送する場合など)。

OpenCL メモリの抽象化をプロセスのアドレス空間に制限すること (少なくとも intel/amd ドライバーの場合) はまだイライラすると思いますが、この実装が選択された理由には、いくつかの微妙な詳細またはパフォーマンスのトレードオフがある可能性があります。

于 2013-09-07T21:49:29.427 に答える