3

私の知る限り。CUDAのコンスタントメモリは特定のメモリです。そして、それはグローバルメモリよりも高速です。しかし、OpenCLの仕様では。次の言葉が出ます。

または定数アドレス空間名は、__constantグローバルメモリに割り当てられ、カーネル内で読み取り専用変数としてアクセスされる変数を記述するために使用されます

つまり、__constant記憶は記憶からのもの__globalです。__globalそれは、メモリと同じアクセスパフォーマンスがあることを意味しますか?

4

2 に答える 2

7

これは、使用しているOpenCLプラットフォームのハードウェアおよびソフトウェアアーキテクチャによって異なります。たとえば、キャッシュコヒーレンシに参加する必要のない読み取り専用キャッシュを備えたアーキテクチャを想定できます。これらのキャッシュはコンスタントメモリには使用できますが、グローバルメモリには使用できません。したがって、コンスタントメモリへのアクセスが高速になる可能性があります。

そうは言っても、私が精通しているアーキテクチャはどれもこのように動作しません。つまり、これは単なる仮説です。

于 2012-08-28T06:23:53.157 に答える
1

OpenCL標準では、コンスタントメモリの実装方法は指定されていませんが、NVIDIAGPUではコンスタントメモリがキャッシュされます。AMDが何をしているのかわかりません。

于 2012-08-28T09:05:13.363 に答える