#opencl
#opencl
Вопрос:
Мне интересно, будет ли освобождение буфера OpenCL A, который содержит вложенные буферы A1, A2, … автоматически освобождать также вложенные буферы — особенно на хосте, а не на устройстве.
Ответ №1:
Спецификация для clCreateSubBuffer
не содержит никаких исключений из общих правил создания объектов и подсчета ссылок для вложенных буферов. Далее говорится,
Возвращаемый объект buffer ссылается на хранилище данных, выделенное для буфера
Поэтому я думаю, можно с уверенностью сказать, что вам нужно освобождать каждый вложенный буфер, а также родительский буфер по отдельности, и реализации могут освобождать полное родительское хранилище данных только после освобождения последнего объекта вложенного буфера.
Я, конечно, не сталкивался с какими-либо проблемами при следовании этому шаблону самостоятельно.