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条)