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