まず、CL_MEM_ALLOC_HOST_PTR が渡されたときに clCreateBuffer() がどのように機能するかを理解するのに苦労しています。デバイスにバッファを作成し、ホストにメモリを割り当てますか、それともホストにのみメモリを割り当て、使用時にデバイスにキャッシュしますか?
私の問題はこれです: float* フィールドを持つオブジェクトがかなり多く、デバイスで利用可能なスペースよりも多くのスペースがある場合、ランタイムにホストポインターを OpenCL にコピーする (または使用する) ように指示するより良い方法はありますか?デバイス?ランタイムにホスト ポインターを作成させ、それをすべての float* に使用させることは可能ですか? ホスト ポインターを使用するように指示してもかまいませんが、ランタイムが CPU 上にあるときにメモリ コピーを回避したい場合は、すべてのメモリを調整する必要があります。
また、デバイスで使用できるよりも多くのメモリをホストで使用して、メモリ転送を最も効率的にし、コピーを最小限に抑えるための適切な方法に関するヒント。
ありがとう。