Nsight Visual Studio Edition单机调试和双机调试CUDA

Nsight Visual Studio Edition单机调试和双机调试CUDA


2024年5月16日发(作者:星速浏览器)

Nsight Visual Studio Edition + VS 2008 CUDA 双机调试设置 单机调试设置

实际上最后自己用的单机调试,也不需要双显卡,就是一台显卡稍好的普通计算机,但是

还不知道怎么cpu和gpu代码同时调试。

Nsight 以前叫Parallel Nsight,现在针对不同的IDE出了不同的支持版本,VS的版本就

叫做Nsight Visual Studio Edition下载的时候,会要你登录,需要在NV的官网注册

Nvidia的账号,不麻烦,但是注册通过好像有点慢。

我的环境:32位Win7 +Administrator 账户(这个估计可能不重要)+Visual Studio

2008 SP1(SP1是必须的,不然无法装Nsight)+32位CUDA4.0+Nsight Visual Studio

Edition 4.0,在官网上显卡支持的list上显卡最低要求是Geforce400以上,我的GT440

勉强过线,但是在另外一台机器上GTX260也成功在断点处中断

1.建议两台机器都把Cuda Toolkit; CUDA Tools SDK;这个不详细讲,Nsight 装上,这样

可以互相调试,也避免了忘记设置某些参数的麻烦。具体方法:

依次安装下列软件:

(1)Nvidia 显卡驱动,装最新版本驱动,初次安装为了少出错,最好安装比较新版本

的驱动。

(2)Cuda Toolkit 4.0 安装,CUDA 4.0 的新特性可以参见其 Release Notes,其中包

括了本文将要介绍的 Thrust 库。

(3)CUDA Tools SDK 4.0 安装,默认安装路径可能是C:ProgramDataNVIDIA

CorporationNVIDIA GPU Computing SDK 4.0,记这个路径为CUDA_SDK_PATH。

(ProgramData 需要查看隐藏文件夹权限才能看到)

现在可以用 VS 打开 CUDA SDK 的例子了,在这之前,两个工具库可以先生成一下。

(1) 使用 VS2008 打开 SDK_PATH ccommoncutil , VS2008 选

“Build|Batch Build…”,“Select All”,生成所有配置需要的 lib.如果遇到“Can not

open source file …”的错误,把文件夹的只读属性去掉。目的:生成各配置需要的

cutilxx[D].lib XX:32 /64 [D]debug 模式lib 存放的位置:CUDA_SDK_PATH

ccommonlib(win32|X64) (2)同上方法,打开 CUDA_SDK_PATHshare

shrUtils_ 选“Build|Batch Build…”

目的:生成各配置需要的 XX:32 /64 [D]debug 模式

lib 存放的位置:SDK_PATHsharelib(Win32|x64)

注:这个项目编译时会提示有两个.cpp 找不到,直接把他们从项目里移去即可。因为同

名的.h 文件里已经有完整代码了。

测试例子:VS2008 打开 SDK 例子:deviceQuery, matrixMul 各种配置均可编译执行

成功, CUDA 的基本配置就完了。

2. 安装 Nsight Visual Studio Edition

3. 关闭 D3D 加速:(这个我照做的,真正是否需要不清楚)

本地调试必须关闭 D3D 加速:“Disable D3D acceleration for WPF”,方法:

(1)打开文件夹窗口.

(2)找到 Nsight Visual Studio EditionHostCommon 文件夹,具体如下:

(a) Win32 系统下是:

X:Program FilesNVIDIA CorporationNsight Visual Studio 4.0HostCommon

(b) Win 64 系统下是:

X:Program Files (x86)NVIDIA CorporationNsight Visual Studio

4.0HostCommon

注意 X 代表你的 windows 系统安装的盘符

(3)找到下面的文件,双击添加到注册表里。 出

现提示对话框,点“是(Y)”按钮

重新启动电脑。

4. 双机都从开始菜单打开 NVIDIA Nsight Monitor 然后点击 Nsight Monitor options,

将 General 中WDDM TDR enabled置为 False; 将CUDA中Use this Monitor for

CUDA attach置为 True;将 Security 中两项全置为 False。

5. 打开待调试的 VS2008 工程, 现在你的工具栏上应该已经出现了 Nsight 这一栏。

在Solution 栏中右键点击待编译的 solution 选中 Nsight User Properties 然后在

Launch 中的Connection Name 中输入另一台 PC 的 IP 地址。

6. 关闭所有防火墙,有时候能 ping 通并不代表你已经关闭了所有防火墙,好好检查一

下。

7. 选“解决方案配置”为Debug,平台是win32还是x64根据你的环境和需要编译你的

工程。

现在你可以在任意一台机器上调试你的代码了, 在你需要监视的核函数(必须是在GPU

上运行的函数才能中断)里打上断点,然后点击 VS2008 菜单 Nsight->Start CUDA

Debugging” 启动 debug, 注意不能使用 VS2008的“调试->启动调试”启动

debug。

个人碰到的问题:Host 的 RuntimeLibrary设置为MTd,另外,cu文件右键—>属性—

—>CUDA_Runtime API——>GPU——>Generate GPU Debug Information—

—>Yes,这个也很重要,没有设置就无法在断点处中断,断点只有在GPU上运行的

kernel函数才能发生中断,另外,不光在cu文件有这个设置,工程右键——>属性—

—>...也有一样的设置项,经过自己实际测试,只有当cu文件上这样设置才会中断,工程

属性里的设置似乎并不是很重要。至于生成规则什么的那是CUDA的安装上的问题,这里

不详细讲。

单机调试:

按双机调试来设置,然后把ip改为localhost或者127.0.0.1就可以了,也不用一台机器

装两个显卡,直接Start CUDA Debugging调试即可。

我的测试是在同一网段的局域网进行的,双机调试感觉需要远程控制,不然有点不方便


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1715792929a2672467.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信