【问题标题】:How do I capture console output from a remote NSight session?如何从远程 NSight 会话中捕获控制台输出?
【发布时间】:2013-06-11 06:35:38
【问题描述】:

我有一组 CUDA 应用程序,它们都通过 cout 写入控制台。我有一台带有 VS 和 NSight 插件的主机和一台带有 NSight 服务的目标机。但是,当我执行控制台应用程序时,它实际上是在目标机器上运行的(字面上会弹出一个控制台)。

所以问题来了:我怎样才能让控制台显示在主机上,而只有 GPU 的东西在目标上执行?这甚至可能吗?

谢谢!

【问题讨论】:

    标签: cuda console remote-debugging nvidia nsight


    【解决方案1】:

    简短的回答是目前不可能。目标上的应用程序由 Nsight Monitor 进程执行,但 Nsight Monitor 当前不会将输出转发回主机。
    目前,您唯一的选择是通过在目标上捕获应用程序的输出并以某种方式将其显示在主机上来自行处理。
    如果此功能对您很重要,我建议您通过您的 Nvidia 开发者帐户提交功能请求。

    【讨论】:

    • 严格来说,这不是 NVIDIA 的关注点。我在想也许 VS 有这方面的东西。 (也就是说,与远程调试无关。)
    • @DmitriNesteruk 据我所知,在进行 CUDA 调试时,VS 只是 Nsight 的前端,VS 与目标机器上运行的代码之间没有任何联系,即使目标和主机是同一台机器。
    【解决方案2】:

    CUDA 应用程序完全在目标机器上运行,因此应用程序的控制台或 UI 只能在目标机器上看到。您可以在 VS 端(您的主机)的 GPU 代码中设置断点,它应该在那里中断。
    如果您觉得应用程序退出太快并且没有按预期启动内核(并且您没有遇到断点),则可能是您没有在目标机器上部署所有必需的 DLL(例如 CUDART)。

    【讨论】:

    • 我明白这一切。然而我的问题仍然存在。
    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多