gpt4 book ai didi

c++ - OpenCL 缓冲区数组 - clEnqueueWriteBuffer -36

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:20 25 4
gpt4 key购买 nike

当我致力于一个易于使用的 OpenCL 实现时,我遇到了错误 -36 clEnqueueWriteBuffer。我正在为启用了抛出异常的 spec 1.1 使用 OpenCL C++ Wrapper。所以我有这个功能 - 我已经评论过它应该做什么(或者我认为它应该做什么..):

void createBuffers(std::vector< OpType > arrays) {
for (int i = 0; i < arrays.size(); i++) {
buffer.push_back( cl::Buffer(contextCL, CL_MEM_READ_WRITE, sizeof(OpType)*length)); //creating the buffers depending on how big arrays is - buffer has been declared as cl::vector<cl::Buffer> buffer;

//here the Exception is thrown
queueCL.enqueueWriteBuffer(buffer[i], CL_TRUE, 0, sizeof(OpType)*length,arrays[i]); //writing the contents of arrays[i] (arrays[i] is a C Array) to the buffer i

kernelCL.setArg(i, buffer[i]);
}
result_buffer = cl::Buffer(contextCL, CL_MEM_WRITE_ONLY, length*sizeof(OpType));
kernelCL.setArg(arrays.size(), result_buffer);
}

这应该能够工作吗?如需更多信息,请咨询!
提前谢谢你,
- 福地硼

最佳答案

嗯,错误 -36 是 CL_INVALID_COMMAND_QUEUE。你不能在函数内部修复它。命令队列在您调用时尚未创建。

真正的错误在别处。它只是出现在那里。

关于c++ - OpenCL 缓冲区数组 - clEnqueueWriteBuffer -36,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com