文档
注册
评分
提单
论坛
小智

CUDA应用运行/调试

编译调试工具支持鲲鹏平台调试CUDA程序,通过统一的调试界面使用CUDA-GDB调试GPU应用。

前提条件

调试前程序已完成编译。

调试有配套源码的程序模块

  1. 单击左侧树快捷功能区按钮,或单击“开发”选择编译调试下方的“调试”,打开调试页面,选择“CUDA应用”,配置CUDA应用调试参数,如图1图2所示。
    图1 CUDA应用(Launch Application)

    图2 CUDA应用(Attach to Process)

    表1 CUDA应用调试参数说明

    参数

    说明

    远程服务器配置

    选择被调试节点服务器IP地址。

    说明:

    root用户拥有最高权限,为了避免给系统带来不必要的风险,建议使用非root用户进行调试。

    Linux用户密码

    输入被调试节点用户名密码。

    记住密码

    勾选后可记住当前远程服务器Linux用户密码。

    调试模式

    • Launch Application
    • Attach to Process
    说明:

    选择“Attach to Process”模式,需要输入被调试进程PID

    PID

    输入被调试进程PID。

    应用程序

    输入应用程序所在的绝对路径。

    应用程序源码路径

    输入应用程序对应源码文件夹所在的绝对路径。

    说明:
    1. 如果源码文件是一个软链接,在调试过程中将会读取软链接对应文件内容(文件内容为隐私内容)。在调试前请确认源码文件是否为软链接,若源码文件是软链接,请确认是否有必要进行调试。推荐被调试源码文件为普通的文本文件。
    2. 在调试过程中,会将源码路径下的所有文件拷贝到调试服务器,请确认源码路径下仅包含与调试相关的源文件。

    应用程序参数(可选)

    输入CUDA应用程序参数。

  2. 单击“开始调试”,右下角提示进度条信息,检测所输入的信息是否正确,若检测结果是错误的,请根据提示信息进行处理。
    • 单击“开始调试”,会自动检测被调试节点是否安装了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应用程序正常,没有被篡改。
  3. 检测过程中,若识别到目标服务器存在多个GPU设备,弹出“选择GPU设备”对话框,在GPU设备下拉列表中选择需要的GPU设备,单击“确定”;若识别到目标服务器只存在一个GPU设备,不会有对话框弹出,将直接打开CUDA节点的调试窗口。
    图3 选择GPU设备

    只支持“Launch Application”模式下进行GPU设备的选择。

  4. 必要信息检测成功后,打开CUDA应用的调试窗口,获取到运行和调试区、源码区和调试按钮区三个区域,运行和调试区显示CUDA调试信息。同时VS Code面板中会显示KERNEL THREADS和INFO CUDA信息,可点开对应页面查看 ,如图4所示。
    图4 调试窗口
  5. 在源码区域进行调试时,当前调试的代码行会高亮显示,在代码行号处单击,会打上断点标记。如图5所示。
    图5 开始调试
    可以选择调试栏上的其他调试按钮来进行调试操作,如表2所示。
    表2 调试按钮操作描述

    操作

    操作描述

    继续

    点击执行到下一个断点

    暂停

    点击中断正在执行的程序

    单步跳过

    点击执行到下一行

    单步调试

    点击步入函数

    单步跳出

    点击步出函数

    重启

    点击后重新启动调试

    停止

    点击后停止调试

  6. 单击调试功能区的按钮,将重新启动CUDA应用调试。
    图6 重启调试任务
  7. 单击左侧CUDA调试信息区域会显示对应的变量(Locals、Register)、监视、断点和HOST THREADS信息。在调试的过程中可以查看HOST THREADS信息并切换线程;修改Locals和Register值;添加、修改、单个删除、全部删除监视表达式;查看断点、调用堆栈信息;展开调试信息如图7所示。
    图7 展开全部调试信息

调试没有配套源码的程序模块

  1. 单击“开始调试”,配置信息检测成功后,打开CUDA应用的调试窗口,获取到运行和调试区、源码区和调试按钮区三个区域,运行和调试区显示CUDA调试信息,如图8所示。
    图8 调试窗口
  2. 在中间源码区域,单击调试栏上的按钮,进行编译调试。在执行结束后会在对应源码代码行高亮,如果源码不存在,源码区域会显示对应的汇编指令,如图9所示。
    图9 汇编指令
  3. 可以通过调试按钮继续对汇编指令进行调试,以及给汇编指令地址添加断点。在调试过程中如果执行到有源码文件,会打开对应源码进行源码调试,无源码文件继续使用汇编指令调试。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词