2011-03-09 13 views
2

デバイスメモリ(GPUを想定)よりも大きなバッファを割り当てることは可能ですか?GPUでopenclを使用してデバイスメモリより大きいバッファを割り当てることができます

私はこれはかなり確信している:

clCreateBuffer(context,CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,sizeof(float) * DATA_SIZE, inputdata, NULL); 

は動作しません。しかし、この作品?:

clCreateBuffer(context,CL_MEM_READ_ONLY | CL_MEM_USE_HOST_PTR,sizeof(float) * DATA_SIZE, inputdata, NULL); 

はいけない、私は悩み、それは私のNVIDIAのQuadro FX 3800で動作するようになってを持っているようだが、私は上のデバイスメモリよりも大きなバッファを割り当てる成功を収めている他の人のことを聞きましたATIカード。

答えて

3

通常、CL_DEVICE_MAX_MEM_ALLOC_SIZEより大きなバッファを割り当てることはできません。通常、CL_DEVICE_GLOBAL_MEM_SIZEとして小さくなります。ホストメモリを複数のclバッファに分割せずにこの制限を回避する方法はわかりません。

0

これはできません。 OpenCLライブラリは物理的な制限のために実際にバッファを割り当てることができず、OpenCLライブラリは処理のために分割して後でマージするコードの件名については何も知らない。あなたはCL_DEVICE_GLOBAL_MEM_SIZEのようなデバイスの知識を持って自分でこれを行うためのコードを書く必要があります。

関連する問題