OpenCLを使用してデータの多くのチャンクを処理すると、7回目の反復でクラッシュします。
ループの各反復の前にメモリが解放され、新しいチャンクに再度割り当てられるようにしますが、Clenqueuewritebuffer()で-38のエラーが発生してクラッシュが発生します。
私はたくさん試しましたが、どこにも行きません。
以下は私のコードの流れです:
clGetPlatformIDs
clGetDeviceIDs
clCreateContext
clCreateCommandQueue
clCreateProgramWithSource
clBuildProgram
clCreateKernel
for(x){
clCreateBuffer
clEnqueueWriteBuffer
clSetKernelArg
clEnqueueNDRangeKernel
clFinish
clEnqueueMapBuffer
clReleaseMemObject
}
それは正しいですか、それとも他の方法で使用する必要がありますか?
もしそうなら、私は何を間違っているのですか?...