pytorch - DataParallel 如何确定我要使用哪个 gpu?
问题描述
我想找到一种简单的方法来指定我的实验运行的 gpus。目前,我知道我可以使用 CUDA_VISIBLE_DEVICES=1,2,3,4 前置我的 python 命令来设置 gpu,我猜 DataParallel 将尝试使用所有 gpu。
有没有办法直接告诉 DataParallel id,比如 4、7、9、12?
解决方案
是的,DataParallem
为我们提供了直接传递 gpu id 的功能。
根据此处的官方文档,数据并行是使用torch.nn.DataParallel
. 可以包装一个模块,DataParallel
它将在批处理维度上在多个 GPU 上并行化。
torch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0)
在您的情况下,您可以简单地执行以下操作:
torch.nn.DataParallel(model, device_ids=[4, 7, 9, 12])
output = net(input_var) # input_var can be on any device, including CPU
DataParallel
您可以在以下链接中了解有关如何将 gpu id 直接传递给的更多信息:
推荐阅读
- sql - SQL查询用来自其他表的查找替换字段中的逗号分隔值
- javascript - jQuery - 如果使用 tags.js 达到 maxTags,则隐藏输入
- oracle12c - oracle bd中身份字段的序列不同步
- java - setter 方法是否公开属性?
- discord.py - @commands.has_permissions 不检查权限
- html - 为什么元素不会保持在同一行?
- c# - “Microsoft.VisualBasic.FileIO 不存在”。如何在我的项目中包含这个库?
- reactjs - 当只有一个项目发生变化时,如何防止整个项目列表重新呈现?(用钩子反应原生)
- spring - Spring Boot with JOOQ 和 Spring Data JPA 之间的技术差异
- swift - 在 Core Data 中获取 IndexSet