我想将我强大的 Windows 10 Pro 机器的访问权限授予外部人员(我完全信任该人员),以运行 Python/PyTorch 程序,并使用 GPU 进行计算。
关键是我想在该人运行计算负载时继续使用该机器:据我所知,该要求排除了所有形式的 RDP/VNC,但我不确定(尤其是 RDP):你能确认/否认吗?
我正在考虑运行 SSH 服务器。这样可行吗?
答案1
Windows 10 包含一个 OpenSSH 服务器作为标准功能。
要启用 OpenSSH 服务器:
- 打开设置 > 应用 > 应用和功能
- 点击右侧的可选功能
- 在可选功能窗口中,单击添加要素
- 在功能列表中,找到“OpenSSH 服务器”。在选择字段中输入“open”可以更轻松地找到该功能(这足以找到该功能)。
- 单击该条目,然后单击其“安装”按钮
- 等待完成并重新启动 Windows 10。
这将在文件夹中安装 OpenSSH 服务器软件 ,该文件夹 将包含SSHC:\Windows\System32\OpenSSH
客户端应用程序和以下服务器工具:sftp-server.exe
、、和配置文件。ssh-agent.exe
ssh-keygen.exe
sshd.exe
sshd_config
SSH 服务器配置为作为名为 的服务运行sshd
。如果它没有自动启动,则需要手动配置它。
答案2
要配置 Windows 10 中的内置 OpenSSH 服务器,您可以查看很多参考资料,包括 harrymc 的回答。我只是在这里添加官方文档链接仅此而已,以防万一有帮助。
但我不确定这是否足够,或者只是共享 GPU 的一些方法的要求,请参阅下文。
分布式 RPC
PyTorch 共享 GPU 的一个选项是使用分布式 RPC(建议使用 PyTorch v1.4)。链接提供了一个教程“使用两个简单示例演示如何使用该torch.distributed.rpc
包构建分布式训练”。这里引用的篇幅很长,甚至包括一组基本步骤。
也可以看看
https://pytorch.org/docs/stable/rpc.html
https://discuss.pytorch.org/t/send-computation-to-a-remote-gpu/71739
您的朋友还可以调试按照图示使用计算机电源这里。
远程桌面协议
至于通过 RDP 的 GPU,提到这里和这里例如,可以通过组策略启用 GPU 渲染。我不确定这是否包括有关 PyTorch 计算的任何内容。
答案3
关键是,当该人在该机器上运行计算负载时,我想继续使用该机器
这是可能的,但这些计算负载会降低机器的速度。如果您想优先考虑平稳运行,我一定会将运行计算负载的进程的优先级设置为低于正常。这意味着所有默认运行的进程将在计算负载之前优先获得可用的 CPU 时间,但另一种看待它的方法是,如果在同一台机器上以正常优先级运行着许多其他进程,这些进程也占用了 100% 的 CPU,则计算负载将获得很少甚至没有 CPU 时间。这可能是您想要的,而且您以 100% 的利用率使用 CPU(或以某种方式让大量进程为您运行)的可能性可能很低。
据我所知,该要求排除所有形式的 RDP/VNC,但我不确定(尤其是 RDP):您能确认/否认吗?
没错。Windows Starter/Student/Home/Pro 版本的 RDP 有意限制一次只能登录一次(企业版除外)。有一些极好的有一些不正当的方法来打破这种局面,这样当其他人使用 RDP 远程登录时,它就不会将你踢出去,但我相信在超级用户上讨论这样的事情是不允许的,所以这种对话就此结束。
VNC/NX/Screensharing 都将接管您当前登录的会话并远程使用它,所以绝对不行。
我正在考虑运行 SSH 服务器。这样可行吗?
是的!这肯定会起作用,而且 Windows 10 默认内置了 SSH。您可以使用以下步骤激活它:
设置 > 应用程序,然后单击应用程序和功能下的“管理可选功能”。
单击已安装功能列表顶部的“添加功能”。如果您已经安装了 SSH 客户端,它将出现在此处的列表中。
向下滚动,单击“OpenSSH 服务器”选项,然后单击“安装”。
此人应该能够使用您要为他们设置的用户帐户通过 SSH 登录,并在您实际登录到计算机时发出命令行命令来运行进程。大功告成!
答案4
考虑到用例特定于获取python/pytorch 程序的计算能力你应该设置 ssh 服务器在具有 OpenSSH 的主机上。
尽管有可能在 Windows 10 上设置 ssh 服务器它不能用作功能齐全的 Windows Server由于限制,但对于远程执行 Python 程序来说可能已经足够了。在笔记本电脑上设置 Windows 服务器是另一种选择,具体取决于您是否要长期和更广泛地使用。