/ / OpenCLのメモリアーキテクチャとGPUの物理メモリ/キャッシュの関係(L1 / L2…) - メモリ、opencl、gpuプログラミング

OpenCLメモリアーキテクチャとGPUの物理メモリ/キャッシュ(L1 / L2 ...)の関係? - メモリ、opencl、gpuプログラミング

OpenCLのメモリアーキテクチャと直接の関係はありますか。

ローカル/グローバル/コンスタント/プライベート 記憶

そして物理的なGPUのメモリとキャッシュ。 たとえば、1GBメモリ/ L1キャッシュ/ L2キャッシュを搭載したGPUカード。これらはローカル/グローバルメモリに関連していますか?

それとも、ローカル/コンスタント/プライベートメモリはグローバルメモリから割り当てられますか? - ありがとう

回答:

回答№1は5

OpenCLはメモリのキャッシングについては実際には議論しません。 最近のほとんどのグラフィックスカードには、グローバルメモリ用のある種のキャッシュプロトコルがありますが、これは古いカードでは保証されません。ただし、ここではさまざまな記憶の概要を説明します。

プライベートメモリ - このメモリは、作業項目ごとにレジスタとして保持されます。 GPUには、計算ユニットごとに非常に大きなレジスタファイルがあります。ただし、このメモリは必要に応じてローカルメモリにこぼれる可能性があります。変数を作成すると、プライベートメモリがデフォルトで割り当てられます。

ローカルメモリ - ワークグループにローカルで共有されているメモリ。 このメモリシステムは通常、計算ユニット自体にあり、他のワークグループから読み書きすることはできません。このメモリは通常、GPUアーキテクチャでは非常に低い待ち時間を持ちます(CPUアーキテクチャでは、このメモリは単にシステムメモリの一部です)。このメモリは通常、グローバルメモリの手動キャッシュとして使用されます。ローカルメモリは __local 属性。

定数メモリ - グローバルメモリの一部ですが、読み取り専用であるため、積極的にキャッシュできます。 __constant このタイプのメモリを定義するために使用されます。

グローバルメモリ - これはGPUのメインメモリです。 __global グローバルメモリ空間にメモリを配置するために使用されます。