OpenCL 子缓冲区是否必须显式释放,即使它们的父缓冲区已释放?
Do OpenCL subbuffers have to be released explicitly even if their parent buffer is released?
我想知道释放包含子缓冲区 A1、A2...的 OpenCL 缓冲区 A 是否也会自动释放子缓冲区 - 特别是在主机上,而不是在设备上。
specification for clCreateSubBuffer
没有引用任何子缓冲区的一般对象创建和引用计数规则的例外情况。它进一步指出,
The buffer object returned references the data store allocated for buffer
所以我认为可以肯定地说您需要单独释放每个子缓冲区以及父缓冲区,并且实现可以自由地仅在释放最后一个子缓冲区对象后才释放完整的父数据存储.
我自己遵循这种模式当然没有遇到任何问题。
我想知道释放包含子缓冲区 A1、A2...的 OpenCL 缓冲区 A 是否也会自动释放子缓冲区 - 特别是在主机上,而不是在设备上。
specification for clCreateSubBuffer
没有引用任何子缓冲区的一般对象创建和引用计数规则的例外情况。它进一步指出,
The buffer object returned references the data store allocated for buffer
所以我认为可以肯定地说您需要单独释放每个子缓冲区以及父缓冲区,并且实现可以自由地仅在释放最后一个子缓冲区对象后才释放完整的父数据存储.
我自己遵循这种模式当然没有遇到任何问题。