Optimization 如何提高OpenCL内核读取全局字符*数据的效率?

Optimization 如何提高OpenCL内核读取全局字符*数据的效率?,optimization,opencl,motion,mc,Optimization,Opencl,Motion,Mc,两幅图像之间的运动补偿(3840*2160),块大小16 内核划分3840*135(135=2160/16),组大小64*1或128*1(基本上没有区别) 现在,我的内核确实访问全局字符数据,但是imagepos=src+mv.xy没有对齐,所以必须逐个读取字符。我认为这里有一个延迟,CodeXL也表明它不受GPRs的限制。所以我需要找到一种加速数据读取的方法。我也想知道如何使用本地内存,但数据只需要一次。 任何建议都将不胜感激。如果我理解正确,运动补偿是块匹配,因此,多次读取。本地内存可以大大

两幅图像之间的运动补偿(3840*2160),块大小16

  • 内核划分3840*135(135=2160/16),组大小64*1或128*1(基本上没有区别)

  • 现在,我的内核确实访问全局字符数据,但是
    imagepos=src+mv.xy
    没有对齐,所以必须逐个读取字符。我认为这里有一个延迟,CodeXL也表明它不受GPRs的限制。所以我需要找到一种加速数据读取的方法。我也想知道如何使用本地内存,但数据只需要一次。
    任何建议都将不胜感激。

    如果我理解正确,运动补偿是块匹配,因此,多次读取。本地内存可以大大加快处理速度。但是没有代码是很难给出答案的…嗨,ZarkZeros,我想使用本地内存,但事实上我只使用一次,所以从全局到局部,然后从局部到私有,效率不高。下面是我的opencl主代码。谢谢事实上,我最重要的问题是通过对齐读取来加快全局字符数据的读取速度。为了获得u全局字符*数据的最佳读取速度,4或8个并发工作项应该同时读取相邻和对齐的数据。研究合并阅读。