ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 浅析cuda应用策略

浅析cuda应用策略

原创 Linux操作系统 作者:ooplife 时间:2010-01-31 22:21:26 0 删除 编辑
    cuda很强大,但是再强大的工具都有它的局限性。
    常言道:尺有所短,寸有所长。
    所以如果在cuda不擅长的领域使用cuda,那么起不了好的作用反倒浪费精力和资源,也是非常正常的。
   因此启动一个项目之前,必须先评估好你的项目是否适合cuda。

   要做出这个评估,就必须对cuda的技术特性有一个很好的理解。
    cuda的特点无非是这么几个:众核,需要从内存把数据拷贝到显存,从内存到显存的带宽相对非常慢。
     所以如果一个项目,要处理的数据可并行性非常差,那就不能用cuda。怎么才叫并行性好呢?那就是:
    首先可以找到一种分治策略,就是这个问题可以划分成很多子问题,子问题的求解相对简单很多,而且可以通过子问题很容易的求出最终解;
     其次这种分治策略必须对彼此间执行顺序依赖很弱,最好不要有依赖。
满足第一条的话,这个问题可以从单线程转换为多线程问题。满足第二条的话,那么转换成多线程以后,性能提高空间会非常大。第二条性质越好,那么线程数增加量和性能增量之比越接近正比。
    但满足上面两条,只能说这个问题适合并行化。
    cuda的另一个主要限制,就是从内存到显存的带宽问题。也就是说,只有你的项目可以设计一种方案,不需要太多内存和显存之间的数据同步,才能有效的发挥cuda的价值。换言之,如果你的方案里,并行化带来的效率提升是10分,而需要投入8分甚至更多的费用在内存和显存的同步上,那就不适合cuda。

    所以大致面评估一个项目是否适合cuda的参数就是下三条:
     1.可并行性。
     2.异步性。
     3.与内存数据的同步依赖性。

  同样这三条,也是实施cuda项目的策略。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23275815/viewspace-626502/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-01-31

  • 博文量
    1
  • 访问量
    1977