首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解释NVIDIA的视觉剖析/建议?

如何解释NVIDIA的视觉剖析/建议?
EN

Stack Overflow用户
提问于 2017-05-02 13:48:49
回答 1查看 182关注 0票数 0

我是相对较新的数据自动化系统,目前是在一个项目加快计算机视觉应用在嵌入式系统与gpu的附加(NVIDIA TX1)。我要做的是在两个库中进行选择: OpenCV和VisionWorks(包括OpenVX)。

目前,我已经编写了测试代码来运行Canny边缘检测算法,两个库显示了不同的执行时间(VisionWorks实现所需的时间减少了30%~40%)。

因此,我想知道原因是什么,因此描述了花费时间最多的内核:来自OpenCV4Tegra的'canny::edgesHysteresisLocalKernel‘,它占据了整个应用程序的37.2% (来自OpenCV实现和VisionWorks实现)和来自VisionWorks的'edgesHysteresisLocal’。

我遵循了“引导分析”,分析器建议应用程序都是延迟限制的,下面是来自VisionWorks的‘VisionWorks’和来自OpenCV4Tegra的'canny::edgesHysteresisLocalKernel‘的捕获。

OpenCV4Tegra - canny::edgesHysteresisLocalKernel

VisionWorks - edgesHysteresisLocal

所以我的问题是

  • 从分析中,我能说出不同表现的原因是什么?
  • 此外,在全面分析CUDA应用程序时,从哪里开始比较好?我的意思是,有很多度量标准,很难说出该看什么。
  • 是否有一些关于全面分析数据自动化系统应用的教育材料?(我看了NVIDIA的许多幻灯片,我认为它们只是告诉了指标的定义,而不是从哪里开始。)

-顺便说一下,据我所知,NVIDIA没有提供VisionWorks和OpenCV4Tegra的源代码。如果我错了就纠正我。

提前谢谢你的回答。

EN

回答 1

Stack Overflow用户

发布于 2017-05-02 14:54:16

1/两个库之间的shared_memory使用情况不同,这可能是导致性能差异的原因。

[2]通常使用三种度量来了解我的算法是否对CUDA设备进行了很好的编码:

  • 内核的内存使用情况(带宽)
  • 所用寄存器的数量:是否存在寄存器溢出?
  • 共享内存库冲突的数量。

我认为互联网上有很多东西.

另一件事:

如果您只想对lib的使用进行限定以选择最佳的实现,那么为什么需要了解每个实现(这很有趣,但不是先决条件)?

为什么不使用循环时间和生成结果的质量来度量算法的性能(假阳性,已知结果的平均误差,.)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43739609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档