话说咱们megstdio上面的双卡,多卡环境怎么使用?还是跟以前一样,选择多卡环境后直接训练就好?不需要像pytorch那样torch.nn.dataparall 是吗?要是真这样,那可太方便啦!哈哈
关于双卡,四卡环境
notebook里多卡训练和在python脚本里没有区别,目前MegStudio上是MegEngine1.0,所以还需要使用多进程接口来训练,参考 https://studio.brainpp.com/project/3210 里涉及dist
和multiprocessing
的部分(其它接口可能有变动)
我们最新的1.2版本则可以更方便地添加一行代码实现多机训练(https://megengine.org.cn/doc/advanced/distributed.html#id2):
import megengine.autodiff as ad
import megengine.distributed as dist
import megengine.optimizer as optim
@dist.launcher
def main():
# ... 模型初始化
dist.bcast_list_(net.parameters())
gm = ad.GradManager().attach(net.parameters(), callbacks=[dist.make_allreduce_cb("sum")])
opt = optim.SGD(net.parameters(), lr=0.01, momentum=0.9, weight_decay=5e-4)
# ... 你的训练代码
1赞