【问题标题】:GPU VS Parallel processing CPU [closed]GPU VS 并行处理 CPU [关闭]
【发布时间】:2018-09-10 23:53:07
【问题描述】:

正如您在标题中所写,机器学习和图像处理的处理速度比 GPU 和并行 CPU 处理更快? 另外,GPU的程序是用C/C++编写的,CPU上进行并行处理的程序应该是用汇编语言和C/C++编写的,或者全部用汇编语言编写。

即使CPU的处理速度较慢,我们能否流畅地进行图像处理的对象检测的实时处理?

【问题讨论】:

  • 你通常可以首先通过整理你的数据结构布局、优化目标平台缓存和内存限制等来获得很多性能...... C++ 编译器现在非常好,如果你有你的算法和数据结构设计得很好,性能已经可以了。然后你可以从编译器分析+检查机器代码,最终在汇编中重写一些时间关键的代码路径,但这就像在其他所有东西都合理用尽之后的最后一步,因为编写好的汇编是一个昂贵的过程,使未来的改变变得昂贵。
  • 非常感谢您的宝贵意见。顺便问一下,结果是哪个快?
  • 最快的代码是不存在的代码(也没有错误),所以我更喜欢先修剪所有任务,以确定什么对任务至关重要,什么可以省略.你的整个问题感觉有点不对劲,你要么已经修复了硬件,然后你可能会问在它上面可以检测到什么,精度和延迟是多少,或者你有一定的精度+速度要求,在达到“无限”硬件之后你衡量你需要什么样的硬件才能达到这样的准确性,并制定一些特定优化计划以达到目标。请注意,“检测物体”并不是很精确的科学,更多的是猜测。
  • 顺便说一句,现在刚刚回忆起来,nVidia 有专门用于汽车行业的特殊芯片,其性能(每瓦特)比用于神经网络任务的普通 CPU 高得多,并为此进行了优化。提供的 nVidia 芯片具有足够的马力来运行自动汽车识别系统,因此请检查这些规格以了解在汽车中进行部分检测需要什么(不需要识别太多,主要是运动和位置以及“物体的坚固性”,但如果它错误地将孩子标记为自行车等,这并不重要,这只是对结果的微调)。

标签: c++ assembly gpu cpu


【解决方案1】:

大多数机器学习问题(例如,大多数神经网络代码)都具有足够的并行性,因此它在 GPU 上的运行速度大大快于 CPU。

图像处理...嗯,这正是 GPU 的设计目的。因此,GPU 在大多数图像处理任务上都比 CPU 更好,这可能并不令人惊讶。

在 CPU 中流畅地进行实时图像处理取决于。如果您的意思是每秒一张低分辨率图像,以及相当简单的对象检测,那么是的,一个像样的 CPU 可能就可以跟得上。如果您在 4K 视频上以 30 帧或(上帝帮助您)每秒 60 帧的速度谈论更复杂的对象检测,那么 CPU 跟上(我的第一个猜测是它不会发生)。

【讨论】:

  • 顺便说一句,虽然以机器学习闻名的暗网在 CPU 上的处理速度似乎更快,但在 GPU 上似乎快了 500 倍。
猜你喜欢
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2010-09-06
  • 2012-11-21
  • 2018-05-26
  • 1970-01-01
  • 2019-01-11
  • 2017-07-24
相关资源
最近更新 更多