我有一组CUDA应用程序,它们都通过cout
写入控制台。我有一台带有VS和NSight插件的主机和一台带有NSight服务的目标机器。但是,当我执行控制台应用程序时,它实际上在目标计算机上运行(实际上会弹出一个控制台)。
所以这就是问题:如何让控制台显示在主机上,只有GPU的东西才能在目标上执行?这甚至可能吗?
谢谢!
答案 0 :(得分:1)
简短的回答是目前无法实现。目标上的应用程序由Nsight Monitor进程执行,但Nsight Monitor当前不会将输出转发回主机。
目前,您唯一的选择是通过在目标上捕获应用程序的输出并以某种方式将其显示在主机上来自行处理。
如果此功能对您很重要,我建议您通过Nvidia开发者帐户提交功能请求。
答案 1 :(得分:0)
CUDA应用程序完全在目标计算机上运行,因此只能在目标计算机上看到应用程序的控制台或UI。您可以在VS端(主机)的GPU代码中设置断点,它应该在那里中断 如果您觉得应用程序退出太快并且未按预期启动内核(并且您没有遇到断点),则可能是您尚未在目标计算机上部署所有必需的DLL(例如CUDART)。