多GPU和分布式工作流¶
EvoX 对分布式工作流提供了实验性支持,允许您在多个 GPU 甚至多个机器上运行任何常规的演化算法。这可以显著加速优化过程,尤其是对于耗时的问题。
如何使用¶
要使用分布式工作流,你需要设置以下内容:
请确保您已手动固定随机数生成器的种子。
torch.manual_seed(seed)
# Optional: set the seed for numpy
np.random.seed(seed)
# Optional: use deterministic algorithms
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 文档。