我想知道如何分析__device__
函数,它是一个内部__global__
与Nsight 2.2 Visual Studio 2010中,我需要知道哪些功能会消耗大量的资源和时间的函数。 我有CUDA 5.0 CC 2.0。
Answer 1:
Nsight Visual Studio版本3.0 CUDA探查引入源相关的实验。 本概要CUDA活动支持以下源水平的实验:
指令计数 -收集执行的指令,执行线程指令,活动线程直方图,在内核中每一个用户指令预测线程直方图。 在系统调用(printf的)信息没有收集。
发散科 -采取收集分公司,分公司不采取,并发散计数流控制指令。
内存事务 -收集交易数量,交易的理想柜台,并要求字节为全球,本地和共享内存的指令。
该信息每SASS指令集。 如果内核与-lineinfo(--generate线-INFO)汇编的信息可以被卷起至PTX和高层次的源代码。 由于该数据是由上海社会科学院卷起一些统计数据并不直观高电平源。 例如,一个分支统计可能显示,当你预期采取100%不采取100%。 如果你看一下SASS代码,你可以看到,编译器逆转了条件。
请还没有上构建优化编译器有时无法维持线表信息。
这时的硬件性能计数器和时间仅可在内核级别。
设备码定时可使用如在注释中提到的时钟()和clock64()来完成。 这是一个非常先进的技术,既要有能力了解SASS和解释结果与对于SM经调度。
文章来源: CUDA: Nsight VS2010 profile __device__ function