Nsight 是一个开发CUDA程序的IDE和debug工具。
使用Nsight打开samples程序。
选择“new”,“CUDA C/C++ Project”,给project
命名,Project type
选择”Import CUDA Sample“。接下来从你的机器的samples install location
中选择想要打开的project。如果机器上有CUDA-enabled GPU,接下来的设置默认就好。此时可以看到,.cu
文件存在于project下的src
文件中。这表示,如果自己新建的project也应个先create一个src
文件夹,来存放所有源文件。使用Nsight创建自己的project。
如上述,只需在project type
选择“Empty Project”。然后在这个project中 新建一个“Source Folder”,取名为src
。最后就可以把所有的.cu
,.cuh
,.cpp
,.h
等源码文件在src中创建。
Nsight 的强大之处在于debug。它可以告诉你你的程序使用了多少SM
,多少warp
,多少registers
,以及每个register
中所存放的内容,SM
的利用率,硬件基本信息等等。除了debug,Nsight还集成了visual profiler
的功能,即可视化程序每个部分的执行时间,以便找到程序可优化之处:
以如下简单code为例:
1 |
|
即我有36个元素要处理,使用32个线程,并且32个线程分配到1个block中。当启用debug时,可以得到Device端的信息。
从硬件角度看:
具体看一个SM中的一个warp。一个warp有32个线程,此处只使用了12个。
从逻辑角度看:启用了两个block,分别在两个SM中。
每个block使用12个线程。
另外Nsight还会给出Host的信息,如下:
以下是GPU中registers中的信息:
以及dissambly信息:
当生成可执行文件后,便可以使用profiler测程序的性能。
CUDA