[转]Visual Profiler介绍

adagio_chen 2014-10-08 08:30:46
加精
摘自:http://blog.csdn.net/kkk584520/article/details/9490233

“Visual Profiler是一个图形化的剖析工具,可以显示你的应用程序中CPU和GPU的活动情况,利用分析引擎帮助你寻找优化的机会。”

其实除了可视化的界面,NVIDIA提供了命令行方式的剖析命令:nvprof。对于初学者,使用图形化的方式比较容易上手,所以本节使用Visual Profiler。

打开Visual Profiler,可以从CUDA Toolkit安装菜单处找到。主界面如下:


我们点击File->New Session,弹出新建会话对话框,如下图所示:


其中File一栏填入我们需要进行剖析的应用程序exe文件,后面可以都不填(如果需要命令行参数,可以在第三行填入),直接Next,见下图:


第一行为应用程序执行超时时间设定,可不填;后面三个单选框都勾上,这样我们分别使能了剖析,使能了并发核函数剖析,然后运行分析器。
点Finish,开始运行我们的应用程序并进行剖析、分析性能。


上图中,CPU和GPU部分显示了硬件和执行内容信息,点某一项则将时间条对应的部分高亮,便于观察,同时右边详细信息会显示运行时间信息。从时间条上看出,cudaMalloc占用了很大一部分时间。下面分析器给出了一些性能提升的关键点,包括:低计算利用率(计算时间只占总时间的1.8%,也难怪,加法计算复杂度本来就很低呀!);低内存拷贝/计算交叠率(一点都没有交叠,完全是拷贝——计算——拷贝);低存储拷贝尺寸(输入数据量太小了,相当于你淘宝买了个日记本,运费比实物价格还高!);低存储拷贝吞吐率(只有1.55GB/s)。这些对我们进一步优化程序是非常有帮助的。

我们点一下Details,就在Analysis窗口旁边。得到结果如下所示:


通过这个窗口可以看到每个核函数执行时间,以及线程格、线程块尺寸,占用寄存器个数,静态共享内存、动态共享内存大小等参数,以及内存拷贝函数的执行情况。这个提供了比前面cudaEvent函数测时间更精确的方式,直接看到每一步的执行时间,精确到ns。



这个其实就是命令行窗口,显示运行输出。看到加入了Profiler信息后,总执行时间变长了(原来线程并行版本的程序运行时间只需4ms左右)。这也是“测不准定理”决定的,如果我们希望测量更细微的时间,那么总时间肯定是不准的;如果我们希望测量总时间,那么细微的时间就被忽略掉了。
后面Settings就是我们建立会话时的参数配置,不再详述。








...全文
4949 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20734615 2015-06-01
  • 打赏
  • 举报
回复
楼主,我用6.5版本的必须要设置时间,不然生成不了时间轴...
longnit 2015-04-19
  • 打赏
  • 举报
回复
请教楼主,遇到图中这种情况是什么意思?怎么解决?
心灵捕手3 2015-03-23
  • 打赏
  • 举报
回复
CUDA Profile的时候程序崩溃,可能是什么原因呢?
liduo_13 2014-10-14
  • 打赏
  • 举报
回复
多谢分享!!
GW786228836 2014-10-10
  • 打赏
  • 举报
回复
q107770540 2014-10-09
  • 打赏
  • 举报
回复
0方人也0 2014-10-09
  • 打赏
  • 举报
回复
厉害厉害厉害厉害厉害
laoer_2002 2014-10-09
  • 打赏
  • 举报
回复
学习,谢谢楼主分享
cattpon 2014-10-09
  • 打赏
  • 举报
回复
整理得这么细心!
java圈 2014-10-09
  • 打赏
  • 举报
回复
wm1912 2014-10-09
  • 打赏
  • 举报
回复
法国的风格的歌
YCMyTot 2014-10-09
  • 打赏
  • 举报
回复
多谢分享!!
sinat_21752593 2014-10-08
  • 打赏
  • 举报
回复
厉害厉害厉害
zcream 2014-10-08
  • 打赏
  • 举报
回复
没用过看看
Intel.Thread.Profiler.英特尔_.线程档案器11

Intel.Thread.Profiler.英特尔_.线程档案器].Intel.Thread.Profiler.v3.1.005.ISO-TBE.part11.rar

因为文件很大~ 所以分开压缩了 解压后是镜像

概述

立刻采用多线程技术,释放多核处理器(包括最新的 64 位四核处理器)系统的卓越性能。

英特尔® 线程档案器 3.1 Windows* 版有助于您调整并提高多线程应用程序的运行速度,从而使代码在英特尔® 多核处理器上的性能得到优化。

英特尔® 线程档案器可作为独立产品获得。更加完整的性能调试解决方案随 VTune™ 性能分析器 Windows 版提供。

特性

虚拟化线程应用程序行为:

●时间轴视图可帮助理解线程正在执行的操作以及线程之间的交互。
●在调用堆栈和源代码中准确定位引发性能问题的确切位置,从而对分析发挥辅助作用。
●测量应用有效利用的内核数量,确定实际的并行处理性能

英特尔® 线程档案器 3.1 Windows 版同时显示并发视图和时间轴视图,这有助于查看哪部分代码适合并行处理以及应用性能问题源于何处。在图 1 中,对源代码进行了两次修复,每次修复后性能持续提高,通过应用运行时间缩短可以看出这一点。通过英特尔® 线程档案器,开发人员能够在应用中充分利用多核技术。

通过双击时间轴视图上的换进入源代码视图,从而准确查看线程在源代码中进行换工作的位置

发现并行性能问题:

●发现影响性能的线程和同步对象
●查看线程任务分配,准确定位负载失衡

高级线程性能分析功能:

●通过 OpenMP* 分析,可以快速确定原型,并估计不同设计的性能潜力
●使用关键路径分析有助于将精力集中于比较重要的性能问题上

Microsoft Visual Studio* 2005 支持:

●支持 Microsoft Visual Studio* 2005 中使用 Microsoft Windows 编译器开发的 C++ 应用程序

本版本新增内容

支持最新多核处理器:

●优化新的英特尔® 酷睿™2 双核处理器以及英特尔® 酷睿™2 四核处理器上的多线程应用程序的性能

在 Microsoft Windows Vista* 上安装并运行:

●分析在 Microsoft Windows Vista* 上运行的已编译 32 和 64 位应用程序

兼容性

英特尔线程档案器 3.0 Windows 版兼容现今的行业标准开发工具:

Microsoft Visual Studio* 2005
Microsoft Visual C++* 编译器 2005、2003、2002 版或 Visual C++ 6.0
Microsoft Visual Studio 2005 Express Edition C++ 编译器
英特尔® VTune™ 性能分析器 8.0 或更高版本
英特尔® Fortran 和 C++ 编译器
Windows 线程和 POSIX* 线程
英特尔® 线程构建模块
支持英特尔® OpenMP*

580

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧