当前位置:网站首页>安装NCCL\mpirun\horovod\nvidia-tensorflow(3090Ti)
安装NCCL\mpirun\horovod\nvidia-tensorflow(3090Ti)
2022-07-26 05:01:00 【zoetu】
环境说明
显卡:Nvidia 3090Ti
CUDA 11.1
Cudnn 8.0
OS:Ubuntu 20.x
Tensorflow:nvidia-tensorflow(后面有安装过程)
tensorflow1.x版本不提供对A100/3090等新版显卡的支持,因此使用nvidia-tensorflow(如果不安装此版本tf,就算检测到显卡也不会调用)。另外,nvidia-tensorflow 只支持ubuntu20.04。
horovod介绍
horovod是Uber 团队开发的分布式训练框架,他可以满足让你尽量少的修改代码即可将在单卡训练的脚本横行扩展为多卡并行训练,同时又兼顾训练的加速。目前支持tensorflow/keras/pytorch/mxnet.底层通信主要依赖NCCL/Gloo(测试后NCCL是最快的),支持MPI(CPU 训练更快)。由于其训练加速效果比tensorflow 原生的distributedStrategy 快很多,所以在分布式训练时,推荐使用。
下面主要针对tensorflow1.x 下做分布式训练进行说明。
环境主要依赖tensorflow1.x/horovod/nccl/mpi ,有两种方式搭环境:local/docker,本文采用local本地安装。
NCLL
https://github.com/NVIDIA/nccl
安装NCCL,注意版本,为了兼顾A100,推荐使用v2.8.3-1 这个版本。
# 编译nccl
git clone https://github.com/NVIDIA/nccl.git
cd nccl && git checkout v2.8.3-1
make -j src.build
# 如果第一次安装,需要安装一下依赖
# Install tools to create debian packages
sudo apt install build-essential devscripts debhelper fakeroot
# Build NCCL deb package
make pkg.debian.build
ls build/pkg/deb/
# install
sudo make install
安装这里有一步很耗时间,等着就行了
验证安装
# 确认horovod链接的nccl版本路径正确
ldd /usr/local/lib/python3.8/dist-packages/horovod/tensorflow/mpi_lib.cpython-38-x86_64-linux-gnu.so
mpirun
https://www.open-mpi.org/
# 安装依赖
apt-get install libnuma-dev
# 下载安装包
wget https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-4.0.0.tar.gz
# 解压
tar zxf openmpi-4.0.0.tar.gz
# 安装
cd openmpi-4.0.0
./configure --enable-orterun-prefix-by-default
make -j $(nproc) all
sudo make install #需要root权限
sudo ldconfig #需要root权限
查看版本
mpirun --version
nvidia-tensorflow
pip或者conda安装
pip install nvidia-pyindex
pip install nvidia-tensorflow
这里如果下载失败,多换几个网络吧。。

3090欢乐时刻——支持gpu
输入命令检测是否可以使用gpu
import tensorflow as tf
print(tf.test.is_gpu_available())

horovod
horovod 在安装时,需要安装支持NCCL ,同时建议安装最新版本。
如果安装报错,请安装指定版本,如下命令。
卸载之前的horovod版本
pip show horovod && pip uninstall horovod

安装命令
HOROVOD_WITH_MPI=1 HOROVOD_WITHOUT_GLOO=1 HOROVOD_GPU_OPERATIONS=NCCL HOROVOD_WITH_TENSORFLOW=1 HOROVOD_NCCL_LINK=SHARED pip3 install horovod==0.24.3 --no-cache-dir

验证一下horovod
horovodrun --check-build
前面勾选则代表支持

参考资料:
https://www.jianshu.com/p/975f5cca88e4
https://xv44586.github.io/2022/05/25/horovod/index.html#huan-jing-zhong-cai-guo-de-keng
边栏推荐
- Five simple and practical daily development functions of chrome are explained in detail. Unlock quickly to improve your efficiency!
- The importance of supporting horizontal expansion of time series database
- columns in GROUP BY clause; this is incompatible with sql_ mode=only_ full_ group_ By mysql8.0 solution
- Excel VBA:将多个工作表保存为新文件
- JVM第五讲:纵横数据如何应对洪峰推送
- 面试之请详细说下synchronized的实现原理以及相关的锁
- 公交站间的距离 : 简单模拟题
- AXI协议(4):AXI通道上的信号
- 基于遥感解译与GIS技术环境影响评价图件制作
- The landing of tdengine in the GPS and AIS scheduling of Zhongtian steel
猜你喜欢

【ACWing】1268. 简单题

Google Emoji guessing game helps parents guide their children to surf the Internet safely

Minipcie interface can card solves the problem of industrial computer expanding can channel minipcie can

STM32 development | ad7606 parallel multi-channel data acquisition

Two ways to create MySQL database

C语言——字符串函数,内存函数集锦以及模拟实现

阿里三面:MQ 消息丢失、重复、积压问题,如何解决?

遥感、GIS和GPS技术在水文、气象、灾害、生态、环境及卫生等领域中的应用

Can serial port can 232 can 485 serial port to CANbus bus gateway module can232/485mb converter cancom

Date and time function of MySQL function summary
随机推荐
IEC61131 数据类型与 C#数据类型的对应
[cloud native | 17] four network modes of container
Excel VBA:将多个工作表保存为新文件
Two ways to create MySQL database
Ggjj, do you have a look at this problem? Does caching cause cross domain problems?
mysql函数汇总之日期和时间函数
基于遥感解译与GIS技术环境影响评价图件制作
【云原生 | 17】容器的四种网络模式
【洛谷】P3919 【模板】可持久化线段树1(可持久化数组)
Use field parameters for report translation
分子骨架跃迁工具-DeLinker介绍
阿里云工业视觉智能工程师ACP认证——备考
STM32 development | ad7606 parallel multi-channel data acquisition
Redis expiration deletion strategy and memory obsolescence strategy
基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习
有ggjj看看这个问题没,是否缓存导致跨域问题?
[mathematical modeling] basic knowledge of MATLAB
Redis solves the problem of oversold inventory
Icml2022 | imitation learning by evaluating the professional knowledge of the presenter
Rman-06031 cannot convert database keywords