Rob*_*dor 3 c c++ image-processing opencl
我正在执行Otsu的方法(链接https://en.wikipedia.org/wiki/Otsu%27s_method)以确定原始帧中有多少黑色像素.我正在尝试优化流程,我想用OpenCL来做.有没有办法将单个变量传递给OpenCL内核并递增它,而不是在没有必要时传递整个缓冲区?
您想要解决的问题非常类似于全球缩减.虽然您可以使用单个输出变量和原子读取/修改/写入访问,但它会非常慢(由于原子上的争用),除非您计算的东西非常稀疏(这里不是这种情况).因此,您应该使用与还原相同的技术,即并行执行部分求和,然后将它们合并在一起.谷歌"OpenCL减少",你会发现一些很好的例子,例如:https : //developer.amd.com/resources/articles-whitepapers/opencl-optimization-case-study-simple-reductions/