グラフィックカードにOpenCLを使用してPythonでデータをコピーしています。そこには、n 個のスレッドでデータを処理するカーネルがあります。このステップの後、結果を Python と新しいカーネルにコピーします。(データは 900MB と非常に大きく、結果は 100MB です) この結果を使用して、約 200MB の三角形を計算する必要があります。すべてのデータがグラフィック カードのメモリを超えています。
最初のカーネルが作業を終了した後、最初の 900MB はもう必要ありません。
私の質問は、グラフィック カードから最初のデータセット (1 つの配列に格納されている) を削除するにはどうすればよいですか?
ここにいくつかのコード:
#Write
self.gridBuf = cl.Buffer(self.context, cl.mem_flags.READ_ONLY | cl.mem_flags.COPY_HOST_PTR, hostbuf=self.grid)
#DO PART 1
...
#Read result
cl.enqueue_read_buffer(self.queue, self.indexBuf,index).wait()