torch多gpu使用分配问题,有无一套cpu gpu都通用的代码?

发布于 2022-09-12 23:50:06 字数 770 浏览 27 评论 0

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")``
对于model.to(device)model.cuda(device)
那显而易见to device是可以cpu和gpu的,cuda的话只能gpu。
我显然不只想说这个。

背景

组内有服务器,服务器有4个显卡,我们组用0号显卡。其余的给其他人用。我自然是想cpu gpu都用一套代码,于是

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
# 之后的都是这样写:
model.to(device)

结果好家伙,当其余3块gpu都0%占用时候,0号开始运作;当其余3块都被99%占用后,0号直接停止,转成cpu了。

alternative

组内同学用这样子写了下;

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
# 之后的都是这样写:
model.cuda(device)

结果就能用了,不管其余的gpu是否占用。

老铁们,这什么情况?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文