DistributedDataParallel 与 PyTorch 中指定的 gpu 设备 ID
DistributedDataParallel with gpu device ID specified in PyTorch
我想在一台有 8 个 GPU 的机器上通过 DistributedDataParallel 训练我的模型。但是我想在设备 ID 为 4、5、6、7 的四个指定 GPU 上训练我的模型。
如何为 DistributedDataParallel 指定 GPU 设备 ID?
我认为在这种情况下世界大小将是 4,但在这种情况下排名应该是多少?
您可以设置环境变量CUDA_VISIBLE_DEVICES
。 Torch 将读取此变量并仅使用其中指定的 GPU。
您可以直接在 python 代码中执行此操作,如下所示:
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '4, 5, 6, 7'
请注意在以任何方式初始化 torch 之前执行此命令,否则该语句将不会生效。
另一种选择是在 shell:
中启动脚本之前临时设置环境变量
CUDA_VISIBLE_DEVICES=4,5,6,7 python your_script.py
我想在一台有 8 个 GPU 的机器上通过 DistributedDataParallel 训练我的模型。但是我想在设备 ID 为 4、5、6、7 的四个指定 GPU 上训练我的模型。
如何为 DistributedDataParallel 指定 GPU 设备 ID?
我认为在这种情况下世界大小将是 4,但在这种情况下排名应该是多少?
您可以设置环境变量CUDA_VISIBLE_DEVICES
。 Torch 将读取此变量并仅使用其中指定的 GPU。
您可以直接在 python 代码中执行此操作,如下所示:
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '4, 5, 6, 7'
请注意在以任何方式初始化 torch 之前执行此命令,否则该语句将不会生效。 另一种选择是在 shell:
中启动脚本之前临时设置环境变量CUDA_VISIBLE_DEVICES=4,5,6,7 python your_script.py