horovod的Github路径:horovod/horovod: Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet. (github.com)https://github.com/horovod/horovod#install
针对之前配置的pytorch==1.5.1和cuda==10.2,配置horovod。在使用horovod进行分布式训练时,会报出下面这个错误。
之前的配置顺序(不要按照这里的操作):
1、先安装openmpi:
sudo apt-get install -y openmpi-bin
2、根据下面的顺序逐步安装Horovod
pip install mpi4py
HOROVOD_GPU_OPERATIONS=NCCL pip install horovod==0.19.4
pip install horovod
错误信息:
产生上面报错原因是因为,重新针对RTX3090的服务器配置了cuda,导致之前配置的Horovod版本和cuda不匹配,需要重新配置。
解决方法(按照这里的操作):
1、卸载之前安装的Horovod(因为,如果直接安装高版本的horovod还是会显示上面的错误,需要将之前版本卸载,再重新安装)
pip uninstall horovod
2、安装Horovod:使用以下命令安装Horovod
pip install horovod
3、安装Gloo支持的依赖项(重点!!!):Gloo需要libuv库的支持。需要确保libuv已经安装在系统中。
对于Ubuntu系统,可以使用以下命令安装libuv:
sudo apt-get update
sudo apt-get install libuv1-dev
4、重新构建Horovod:如果之前已经安装了Horovod但未启用Gloo支持,可以尝试重新构建Horovod,确保Gloo支持已经启用。在重新构建Horovod时,请确保已经安装了Gloo所需的依赖项。
HOROVOD_WITH_GLOO=1 pip install --no-cache-dir horovod
通过将HOROVOD_WITH_GLOO=1
设置为环境变量,可以确保Gloo支持已经启用,并重新安装Horovod。
5、验证Gloo支持:可以使用以下代码片段在Python中验证Gloo支持是否已成功构建:
import horovod.torch as hvd
hvd.init()
print(f"Horovod initialized with rank {hvd.rank()}")
运行这段代码,如果成功输出当前进程的排名(rank),则表示Horovod和Gloo支持已经成功构建。