多 GPU 与分布式工作流
EvoX 对分布式工作流提供了实验性支持,允许你在多个 GPU 甚至多台机器上运行任何常规进化算法。这可以显著加速优化过程,尤其是对于耗时较长的问题。
使用方法
要使用分布式工作流,你需要进行以下设置:
- 确保手动固定随机数生成器的种子。
torch.manual_seed(seed)
# 可选:设置 numpy 的种子
np.random.seed(seed)
# 可选:使用确定性算法
torch.use_deterministic_algorithms(True)
重要: 确保在任何 torch 或 numpy 操作之前设置所有随机数生成器的种子。这可以确保随机数生成器在执行任何操作之前处于已知状态。
- 使用
torch.distributed或torchrun命令来启动你的脚本。例如:
torchrun
--standalone
--nnodes=1
--nproc-per-node=$NUM_GPUS
your_program.py (--arg1 ... train script args...)
提示:
torchrun是启动分布式 torch 程序的推荐方式。更多信息请参阅 PyTorch 文档。