2012-03-06 4 views
3

OpenCL1.1にデータ転送を処理するための怠惰な戦略はありますか?私はCUDAにこの戦略があることを知っていますので、あなたはデバイス上のものよりも多くのメモリを割り当てることができます。OpenCL1.1の遅延戦略

+1

使用例はありますか?なぜ私がそれをするのか想像できません。 – LucasB

+0

たとえば、計算中に更新されたため、ホストmemにリンクされている構造体のリストがありますが、順序は整っていません。次に、あなたはGPUにもっと計算のためのリストの一部を送るはずですが、必要な情報はすでにアップロードされているかどうかです。だから、後であなたはリストの多くをフェッチすることを決めることができます。遅延ストラテジーでは、必要に応じてデータをアップロードできます。 – Damoon

答えて

4

私はOpenCLに慣れていませんが、関連するものはNVIDIA forum discussionです。

はまた

...誰は全体の後に来る場合、私はCUDAの言及に答えると思った私は、デバイス上で物理的に使用可能なより多くのメモリを割り当てるためのネイティブCUDAで仕方がないと思います。実際には、大きなカードであっても、1つの大きな連続した配列を割り当てることはできません。私はC1060の日に、3GBのカードで約1.5GBの制限を打つことを思い出します。そのような大きな割り当てを可能にするCUDAの意味についていくつかの詳細を教えてください。

あなたがArrayFire(またはJacket)を使用している場合、彼らはvirtual memoryの基本的な考え方を持っている:あなたはカードに利用できるより多くを合計少し配分をたくさん持っている場合、それは唯一のデバイス上で最も重要なを保持します他の部分は必要になるまでホスト上に保持されます。