【问题标题】:How to debug into CUDA kernel code using visual studio 2008?如何使用 Visual Studio 2008 调试到 CUDA 内核代码?
【发布时间】:2011-05-01 17:19:21
【问题描述】:

嘿, 我正在使用带有 CUDA 3.2 的 Visual Studio 2008。我正在尝试使用此签名调试函数:

 MatrixMultiplication_Kernel<<<dimGrid, dimBlock>>>(Md, Nd, Pd, Width);

我可以进入该函数,但是当我进入该函数时,它不允许我跨过任何代码并告诉我没有可用的源。有人知道如何正确调试吗?

谢谢!

【问题讨论】:

    标签: visual-studio debugging cuda


    【解决方案1】:

    您无法使用 Visual Studio 调试 CUDA 内核代码。 Visual Studio 只能调试在 CPU 上运行的程序。

    事实上,我认为你再也不能在 Windows 中调试 CUDA 内核代码了。 CUDA 曾经有一个主机仿真模式,但在 3.0 中被删除了。唯一可用的调试工具是 cuda-gdb 和 ocelot,据我所知,它们都不支持 Windows。

    【讨论】:

    • 这是不正确的。 NVIDIA Parallel Nsight 可用于设备调试。
    【解决方案2】:

    你在使用Nsight吗? Vanilla Visual Studio 无法进入设备代码,但使用 Nsight,这是可能的。不幸的是,Windows 设备驱动程序模型的限制意味着存在一些严重的限制。以前调试需要两台机器。目标机器将在其 GPU 上运行 CUDA 代码,并且必须使用 TCC 驱动程序。主机将运行 Visual Studio 并控制目标。似乎现在可以在同一台机器上调试 CUDA 代码,只要您有两个 GPU,一个用于计算,一个用于显示。 user guide中还提到了许多其他问题。

    这可能不是一个可以接受的答案,但是:如果你可以在 Linux 上编译你的代码,你可以使用 cuda-gdb 来调试内核。 cuda-gdb 是 Linux CUDA 工具包的一部分。

    【讨论】:

    • "现在可以在同一台机器上调试 CUDA 代码,只要您有两个 GPU,一个用于计算,一个用于显示。"确切地。两者都必须是 G92 或 GT200。 (例如,Fermi 470/480 已经淘汰。)这说明了 CUDA 用户的百分比是多少?
    • 不幸的是,技术上的限制以及 CUDA 并没有真正存在那么久的事实意味着只有财力雄厚的人才可以进行这种调试。其余的必须采取其他方法。
    • 查看此列表以了解支持的 GPU:developer.nvidia.com/object/nsight-requirements.html。 1.5 版本支持 Fermi 470/480。确实你需要两个 GPU(否则你会在断点处阻止你的显示),但它们不需要是高端的,入门成本相当低!
    【解决方案3】:

    更新:Parallel Nsight 现在是免费的,并且支持在您的系统中仅使用一个 GPU 进行调试。

    要在 Visual Studio 中调试设备代码,您需要 Parallel Nsight。标准版免费,提供您需要的调试以及设备代码分析。

    如果您想在一台机器上进行调试,那么您将需要两个 GPU(因为运行代码的 GPU 在遇到断点时会停止,因此您的显示器也会阻塞)。不过,它们不需要是高端 GPU,从 G92 开始的任何东西都可以(包括here 列出的大多数 Fermi GPU)。

    【讨论】:

    • CUDA-GDB 也是这样吗?
    【解决方案4】:

    您现在可以使用 NSight 在只有一个 GPU 的单台机器上进行调试。

    我想我会更新这个,因为之前的答案不再正确(您不再需要 2 个 GPU)并且它让我在错误的方向上走了一段时间。

    【讨论】:

    • 不使用X或者没有SM3.5的情况下只能在一个GPU上调试,source
    • 我有两张 Tesla C1060 卡。我正在为我的实验室构建一台 GPU 机器,并将在 Linux 上运行它。因此,根据您的评论,如果我想使用 CUDA-gdb,我需要额外的显卡(可能在板上)运行显示/X 服务器?谢谢
    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多