opencl吧 关注:530贴子:1,575
  • 5回复贴,共1

关于opencl执行速度的问题

只看楼主收藏回复

大家好:
本人最近在学习opencl,想通过opencl对算法进行加速,但是现在发现如果只计算kernel运行时间的话,确实比cpu运算速度加快了,但是加上内存的transfer时间的话,速度还不如原来直接用CPU运算的速度,那这样就起不到优化加速的作用了,所以请教大神,有没有遇到富哦相同的困惑,还有处理这个问题一般用什么思路啊?多谢!!!


IP属地:北京1楼2013-04-11 17:16回复
    transfer时间是硬伤,一般这部分也优化不了。
    就是有时用多个kernel的时候,可能就直接用上次kernel的buffer,避免下传入传出的麻烦。
    我们现在就是只比较kernel和CPU的时间,其实有点自欺欺人了。
    期待APU吧,那时候可能CPU和GPU就共享存储空间了。就没有transfer时间了。
    其实这样的原因还是出现在计算量不够大而且算法不够复杂的时候。
    复杂大量的计算时,opencl表现的还是不错的


    IP属地:吉林2楼2013-04-12 09:07
    回复
      楼上有理。只有在遇到运算密集而cache使用占量少的时候,并行加速才有用。
      GPU -> CPU 的一次transfer最轻巧也得要15-30 ms,常见80-90ms,甚至100ms以上,一秒内能有多少个80ms?
      最后,为了这些特性,对算法进行改造和优化是很必要而且也是很考功力的。一般程序员不用想了,这些技术功底根本难以一步登天。


      4楼2013-05-21 14:31
      回复
        传数据时用非阻塞的


        IP属地:湖北来自手机贴吧5楼2013-05-23 17:50
        回复
          问题规模太小,换个规模大的


          6楼2013-08-01 13:31
          回复
            超清视频编码的话,是不是opencl的加速优势就很明显了!!!!!


            来自Android客户端7楼2013-10-15 00:50
            回复