使用CL_MEM_COPY_HOST_PTR上传大数据时OpenCL崩溃

时间:2015-05-25 14:10:39

标签: opencl gpgpu

最近我在OpenCL上遇到了一个问题。 如果我使用标志CL_MEM_COPY_HOST_PTR创建一个大的cl :: Buffer(让它说它的1920 * 1080 * 3字节大)。每当我执行enqueueWriteBuffer时,它都会与

崩溃
select * from mytable
where
ctable.Id IN (CASE 
                WHEN ISNULL(@ids,'') <> '' THEN (select id from @mylist) 
                ELSE ctable.Id 
              END)

很奇怪。使用CL_MEM_ALLOC_HOST_PTR。它在enqueueWriteBuffer上给了我错误-38(CL_INVALID_MEM_OBJECT)。还有CL_MEM_USE_HOST_PTR,一切都很好。

但是,不应该所有三个CL_MEM_COPY / USE / ALLOC_HOST_PTR做同样的工作来创建工作缓冲区吗?为什么一个工作和其他失败?我错过了什么?

编辑: 这里是源代码(example / hugeData.cpp)

https://github.com/marty1885/EasyCL

0 个答案:

没有答案