有没有必要建立一个内存池类的东西 对clCreateBuffer和clReleaseMemObject 进行管理,有现成的模块吗,大家一般怎么处理? 多多指教 谢谢!
你好,作为规范的OpenCL并没有讨论clCreateBuffer是否耗时,这个得看具体实现。
例如某些AMD的实现可能在create的时候很快,但是在第一次访问或者Enqueue了Map/Read/Write之类的时候,在此时却比较慢(首次touch)。这个得看具体实现的。
此外,不建议频繁CreateBuffer和ReleaseMemObject的,如果真的需要这样做,我建议自行实现一个pool/heap(如果你感觉的那样)。
关于你的第三个问题,是否有现成的代码/库可以完成该设想,这个暂时不清楚。