炼数成金 门户 CUDA 查看内容

NVIDIA可视化性能分析器:computeprof

2015-9-9 14:41| 发布者: 炼数成金_小数| 查看: 1991| 评论: 0|来自: 红黑联盟

摘要: NVIDIA为UNIX、Windows和Mac系统提供了可视化性能分析器computeprof(又称Visual Profiler),用来为用户收集并分析底层GPU性能分析器的输出结果。利用底层性能分析器,程序不需要使用任何额外的编译器命令行参数进 ...

存储 可视化 操作系统 GPU CUDA

NVIDIA为UNIX、Windows和Mac系统提供了可视化性能分析器computeprof(又称Visual Profiler),用来为用户收集并分析底层GPU性能分析器的输出结果。利用底层性能分析器,程序不需要使用任何额外的编译器命令行参数进行编译。默认情况下,Visual Profiler进行性能分析时会反复执行程序15次,每次时长30秒,以便收集更加可靠的各项观察数据。

Visual Profiler简单易用:

使用computeprof命令启动CUDA Visual Profiler。

在弹出的对话框中,单击“Session”(会话)面板内的“Profile Application”按钮。

在弹出的对话框中“Launch”(启动)文本框内,键入编译后得到的CUDA程序可执行文件的完整路径。

在“Arguments”(参数)文本框内输入程序运行所需的命令行参数。如果程序没有参数,则该框不必填写任何内容。

确认选中设置项“Enable profiling at application launch”、“CUDA API Trace”。

单击对话框底部的“Launch”按钮,开始性能分析。

表3.1展示了Visual Profiler在默认情况下,对nlpcaNM.cu的二进制代码进行性能分析后所显示的综合信息。
在上表中Thrust API产生了一些令人费解的函数方法,但我们仍能推断出lauch_closure_by_value-2是transform_reduce利用CalcError进行的一个变换。lauch_closure_by_value-3为接下来的归约操作。显然,变换和归约操作的数量应该是相等的。我们推测,报告中的调用次数不一致(58和57)应该是由于Visual Profiler在程序执行30秒时中止所造成的。

根据第1章所介绍的GPGPU高效编程的三条法则,表3.1显示出程序是非常高效的:

1)将数据放入并始终存储于GPGPU。
程序没有受到PCIe总线的限制,仅有少于4%的运行时间消耗在设备间的数据传输操作上(memcpyHtoD()、memcyDtoD()和memcpyDtoH())。

2)交给GPGPU足够多的任务。
本程序没有受到Kernel启动延时的影响,其主要的函数方法占用了整个执行时间的83.38%,平均每次执行需要49919微秒——这远远超过了Kernel通常4微秒的启动时间。

3)注重GPGPU上的数据重用,以避免带宽限制。
占用主要运行时间的方法的每时钟周期执行指令数(IPC)达到了1.77,这已非常接近20-系列Fermi GPGPU(如C2070)的理论极限峰值——每时钟周期2条指令。此外,Kernel没有受到内存带宽的限制,其全局内存带宽使用率仅为10.63GB/s,低于C2070内存子系统所能提供的143GB/s的10%。另外,l1 gld(L1缓存全局内存读取)命中率说明,94%的时间下缓存被有效利用。

当点击Method域中的各函数方法名时,Visual Profiler将自动为用户呈现出相应函数方法的细节性能分析结果,这些结果基于大量的前期性能分析数据而得。例3.8中的报告是单击launch_closure_by_value-2生成的。

例3.8 Visual Profiler的Kernel分析
单击“Instruct Throughput Analysis”(指令吞吐量分析)按钮会发现,该Kernel确实获得了非常高的指令吞吐量。Kernel中存在一些执行分支,这些分支最有可能存在于tanh()函数内部,这表明若换用另外一种S形函数也许会提高性能。如例3.9所示。

例3.9 Visual Profiler指令分析
NVIDIA Visual Profiler(computeprof)还收集并提供了其他丰富的信息和分析数据,此处不再赘述。Visual Profiler手册以及启动界面上的帮助项,都是详细了解这些信息的绝佳参考资料。只需输入命令computeprof并在界面上点击Help菜单项,就可查看丰富的帮助信息。

本书后续章节还将参考一些computerprof性能分析器得到的主要测量结果,来了解并理解CUDA程序的GPU性能。Visual Profiler可运行在所有CUDA支持的操作系统(Windows、UNIX和Mac OS X)上,因此所有读者都可以从这些讨论中获得帮助。

鲜花

握手

雷人

路过

鸡蛋

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

热门文章

     

    GMT+8, 2020-1-19 17:58 , Processed in 0.157110 second(s), 23 queries .