请问,我下载了Nsight2.2,安装了后出现 NVIDIA Nsight HUD Launcher 2.2和Nsight Monitor,不知这两个分别是干什么?对了,如何单机单卡debug,需要设置什么吗?我的是vs2010,显卡为GeFource9300 GS。谢谢~
建议您先看一下nsight自带的手册和上手指导。
祝您使用顺利!
ICE在2楼的回复是正道,但我愿意为你说一下强大的nsight 2.2的基本用法,供您入门,其他资料需要您仔细参阅手册。
HUD据说是和DirectX性能分析有关的一个工具,应该和CUDA无关,实际中我不使用它。
从2.2起,在单机单卡调试的时候,非常简单,直接用默认模板建立项目,然后build, 然后选择nsight → start cuda debugging即可调试。
无需任何设置!
如果您之前看过其他资料,我列出一些可能不再需要的地方,请您注意识别:
(1)需要双卡(从2.2起无需双卡)。
(2)需要关闭TDR (从2.2起无需)。
(3)需要关闭WPF的硬件加速,以及关闭AERO特效(从2.2起无需)。
(4)先启动nsight monitor, 再调试。(从2.2起无需)。
此外,您只需要注意一点:您的.cu需要使用-G参数编译。
无其他任何需要注意到事项了。
祝您调试愉快!
需要说明的是,如果您看到其他资料有1,2,3,4这4条和上文矛盾的,请以上文为准。
这是供您使用nsight入门的,如果需要进一步的理解,请参考手册。如果您有其他阅读手册无法理解的内容,欢迎在论坛寻求支持。
谢谢各位大牛!我在看nsight自带的手册和上手指导时,发现出现了host and target machine ,这两个概念感觉我还是没搞清?
target machine(This machine must have a supported GPU.
Application on the target machine.
The target computer does not need to be running Visual Studio.
All you need to install on the target is the Nsight Monitor software)
host machine ( The computer that is running Visual Studio, where your application is
being built and debugged)
nsight是只需要安装在target machine上吗?我要debug的程序是运行在哪个机器上的?我有点晕了,感谢大牛的解答。
因为您只有一张具有CUDA计算能力的9300M显卡。所以您只需要考虑本地调试。
而本地调试请参考3楼。
如果您有多个机器,可以考虑双机调试。
对,是这样的,但是既然我都开始看文档了,感觉有些概念还是要搞清楚的,如果不能理解,那下次双机debug的时候就有问题了。谢谢您~
估计你很难有双机调试的需要,因为你可以直接调试。何必要一个机器装VS, 一个机器运行、调试,折腾死了。
但是我想搞清关系,谢谢~
好的。
target machine是你有GPU的,且运行nsight monitor, 实际上你的程序运行的机器。
host machine是你用来调试的机器,会远程连接到有GPU的,运行nisht monitor的机器。
而单机调试,则是在一个机器上,既有调试用的IDE(安了nsight的VS), 又有GPU, 又运行nsight monitor的机器,也就是你现在用的那台机器。
host machine 是安装有vs的,那我写的程序是在host上的,通过远程发送给target去debug吗?但是host machine 要是没有可用的GPU 的话,是没办法编译的吧?
是的。的确是在target machine上执行的。但是和你交互的debug的IDE的界面,是在本地。
至于你的host machine无GPU也是没关系的,一样可以编译的。toolkit只是考虑编译的话,无需显卡。
谢谢
·
查询了论坛其他资料,请问nsight单卡调试的时候是不是有卡顿的现象呐?对调试影响大吗?谢谢!
卡顿?我没有觉察到。实际上我很久就是单卡调试了。
相比人类的你我的“命中断点,观察,然后按键继续”等操作带来的等待来说,单卡调试引入的“kernel execution preempting“以及“context switch"来说,可以忽略了。
前者你怎么最快也得个几秒,甚至要在调试中长久停住(例如几分钟)观察, 思考,和调试器交互。单卡调试带来的交换kernel上下文到global memory以给同时的其他任务运行机会,所带来的停顿,实际上你应该无法观察到。
至少我没有观察到。但不能排除楼主肉眼无法忍受这点,例如说,几个毫秒的等待。
那也就是说单卡调试没有什么大的问题了。另外,对display这块也不再有影响了哈?
(1)直接边调试边显示是没有问题的。
(2)但是否在调试的同时,会导致显示有性能下降,以及性能下降有几个百分点,这些NV没有给出详细资料。我也不知道。
千军兄正解!