0

CTRL+C我有一个在我的本地机器上响应完美的进程。它似乎也在起作用。

但是在 EC2 实例上,它会冻结并成为已失效或僵尸进程。

kill -9 <PID>不会删除它,我必须重新启动 EC2 实例才能正确清理它。

当它运行时,它还会加载一个内部开发的共享库,我对此没有影响,也无法访问其中的任何源代码来查看它在做什么。这个库也使用 CUDA 并且似乎启动了多个线程。

我尝试在主线程上安装一个信号处理程序,它确实安装了,但调用_exit并没有关闭整个过程,它似乎仍在等待。

为什么这里会发生阻止CTRL+C干净退出进程的情况?我可以覆盖或检查其他线程可能在做什么吗?

4

1 回答 1

0

啊,我发现了问题。我会留下这个问题,以防它帮助别人。

事实证明,在我的 PC 上,我有一个 GTX 680,并且在安装 CUDA 时安装了驱动程序。在 EC2 上,该卡是 GRID K520,CUDA 安装的驱动程序不起作用。我下载并安装了最新的稳定卡专用驱动程序,然后它就可以工作了。

该发现是在运行后发现的nvidia-smi,它不会打印有关卡的任何详细信息,而只会显示Killed. 再次运行 nvidia-smi 会锁定控制台。

不幸的是,我没有测试 CUDA 应用程序是否正常工作,而是依赖驱动程序似乎在日志中打印一条消息,说明它已加载并假设它正在工作。

更新驱动程序包括从 nvidia 下载最新的驱动程序(使用 .run 版本)。然后:

sudo modprobe -r nvidia_uvm
sudo modprobe -r nvidia

最后使用如下命令安装它:

sudo ./NVIDIA-Linux-x86_64-3xx.xx.xx.run

然后我重新启动了实例并使用 nvidia-smi 进行了验证

这个链接很有见地 - CUDA 7.5 在 EC2 上不稳定

于 2016-09-06T20:29:08.590 回答