1

当我创建一个缓冲区,后来通过 clReleaseMemObject 函数释放缓冲区时,总是有一些奇怪的事情,例如,如果我将缓冲区的大小设置为 128KB+8B,那么总是会发生异常(经常,但不是每次,它总是在几次正常执行后发生),但如果我将大小设置为 128KB 或 256KB 或其他大小为 2 的整数幂,则 clReleaseMemObject 始终可以正常工作。我不太确定 OpenCL 中缓冲区的大小是否存在限制,有人知道这个问题有什么影响吗?谢谢!

4

1 回答 1

0

有一些与子缓冲区对齐相关的约束,但这些应该会影响以前的调用,而不是释放 mem 对象的调用。其他例如 CL_DEVICE_MAX_MEM_ALLOC_SIZE 但如果不遵循这些规则,有效的实现将不允许您创建缓冲区/图像。

您的问题看起来与某些缓冲区溢出有关。

于 2013-06-25T20:52:48.807 回答