CUDA应用运行/调试
编译调试工具支持鲲鹏平台调试CUDA程序,通过统一的调试界面使用CUDA-GDB调试GPU应用。
前提条件
调试前程序已完成编译。
调试有配套源码的程序模块
- 单击左侧树快捷功能区按钮,或单击“开发”选择编译调试下方的“调试”,打开调试页面,选择“CUDA应用”,配置CUDA应用调试参数,如图1、图2所示。
表1 CUDA应用调试参数说明 参数
说明
远程服务器配置
选择被调试节点服务器IP地址。
说明:root用户拥有最高权限,为了避免给系统带来不必要的风险,建议使用非root用户进行调试。
Linux用户密码
输入被调试节点用户名密码。
记住密码
勾选后可记住当前远程服务器Linux用户密码。
调试模式
- Launch Application
- Attach to Process
说明:选择“Attach to Process”模式,需要输入被调试进程
PID 。PID
输入被调试进程PID。
应用程序
输入应用程序所在的绝对路径。
应用程序源码路径
输入应用程序对应源码文件夹所在的绝对路径。
说明:- 如果源码文件是一个
软链接 ,在调试过程中将会读取软链接对应文件内容(文件内容为隐私内容)。在调试前请确认源码文件是否为软链接,若源码文件是软链接,请确认是否有必要进行调试。推荐被调试源码文件为普通的文本文件。 - 在调试过程中,会将源码路径下的所有文件拷贝到调试服务器,请确认源码路径下仅包含与调试相关的源文件。
应用程序参数(可选)
输入CUDA应用程序参数。
- 单击“开始调试”,右下角提示进度条信息,检测所输入的信息是否正确,若检测结果是错误的,请根据提示信息进行处理。
- 单击“开始调试”,会自动检测被调试节点是否安装了CUDA-GDBSERVER,以及调试服务器是否安装了CUDA-GDB,如果未安装,请参见安装CUDA Toolkit,CUDA-GDB和CUDA-GDBSERVER包含在
CUDA Toolkit 中,安装CUDA Toolkit的过程中,也会同时安装CUDA-GDB和CUDA-GDBSERVER。 - 若检测到调试服务器安装的GDB不是CUDA-GDB,因此将无法使用完整的CUDA调试功能,建议重新安装CUDA-GDB,请参见安装CUDA Toolkit。
- 建议被调试服务器和调试服务器架构保持一致。
- 目前CUDA支持dwarf2、3、4、5版本的调试格式。
- 在调试过程中,会拉起CUDA-GDBSERVER程序,请调试前确认CUDA-GDBSERVER应用程序正常,没有被篡改。
- 单击“开始调试”,会自动检测被调试节点是否安装了CUDA-GDBSERVER,以及调试服务器是否安装了CUDA-GDB,如果未安装,请参见安装CUDA Toolkit,CUDA-GDB和CUDA-GDBSERVER包含在
- 检测过程中,若识别到目标服务器存在多个GPU设备,弹出“选择GPU设备”对话框,在GPU设备下拉列表中选择需要的GPU设备,单击“确定”;若识别到目标服务器只存在一个GPU设备,不会有对话框弹出,将直接打开CUDA节点的调试窗口。图3 选择GPU设备
只支持“Launch Application”模式下进行GPU设备的选择。
- 必要信息检测成功后,打开CUDA应用的调试窗口,获取到运行和调试区、源码区和调试按钮区三个区域,运行和调试区显示CUDA调试信息。同时VS Code面板中会显示KERNEL THREADS和INFO CUDA信息,可点开对应页面查看 ,如图4所示。
- 在源码区域进行调试时,当前调试的代码行会高亮显示,在代码行号处单击,会打上断点标记。如图5所示。可以选择调试栏上的其他调试按钮来进行调试操作,如表2所示。
- 单击调试功能区的按钮,将重新启动CUDA应用调试。图6 重启调试任务
- 单击左侧CUDA调试信息区域会显示对应的变量(Locals、Register)、监视、断点和HOST THREADS信息。在调试的过程中可以查看HOST THREADS信息并切换线程;修改Locals和Register值;添加、修改、单个删除、全部删除监视表达式;查看断点、调用堆栈信息;展开调试信息如图7所示。
父主题: 编译调试工具