opencv+cuda+gpu为何如此的慢?为什么样我的用opencv的gpu模块做个简单的算法都比cpu慢(还没有计算数据交换时间

发表时间:2018-01-01 15:36:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《如何评价 iPhone 6/6Plus 使用廉价TLC闪存?如何评价iphone7 32GB内存和256GB内存 写入速度相差近十倍》相关知识。本篇中小编将再为您讲解标题opencv+cuda+gpu为何如此的慢?为什么样我的用opencv的gpu模块做个简单的算法都比cpu慢(还没有计算数据交换时间。

经过②天多的配置和修改,到今天成功配置,开始对这个gpu加速的期待和憧憬,但是现在的效果真是好失望,网上搜了好多,他们说cuda初始化需要时间,而且你传入cuda也有时间。。。这些时间的开销远远大于他优化代码的时间。。。

辛苦配置了②天的时间,不过第①份程序往往效率较差,因为潜在值得优化的地方是很多的,只是你还没学习到;第②个,我觉得更重要,是看这个运行时间只是毫秒级,可能你的这个问题就不适合GPU来做。首先对于任何①个CUDA程序,在调用它的第①个CUDA API时后都要花费秒级的时间去初始化运行环境,后续还要分配显存,传输数据,启动内核,每①样都有延迟。这样如果你①个任务CPU运算都仅要几⑩毫秒,相比而言必须带上这些延迟的GPU程序就会显得非常慢。其次,①个运算量很小的程序,你的CUDA内核不可能启动太多的线程,没有足够的线程来屏蔽算法执行时从显存加载数据到GPU SM中的时延,这就没有发挥GPU的真正功能。

说这么多,希望你不要对GPU失去信心,通过继续学习和测试加深对于CUDA的理解,①定可以体会GPU编程给你带来的计算效率提升的乐趣。

首先你的问题规模不大,GPU确实不①定快过CPU的。

另外,第①个GPU任务执行有可能很慢,因为要初始化设备。可以试①下sudo nvidia-smi -pm ①。但是会造成系统更费电。如果你测试性能的话,建议先执行①个kernel,warm up①下。因为毕竟大部分的实际使用也是会大量重复调用①个kernel的。

第①帧是慢,如果你是处理视频的话,后面的帧都非常快,效果显而易见的。

编后语:关于《opencv+cuda+gpu为何如此的慢?为什么样我的用opencv的gpu模块做个简单的算法都比cpu慢(还没有计算数据交换时间》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《IOS main 函数中为何要包着 @autoreleasepool ?Objective-C中的类和对象在内存中是咋运行的》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题