转载地址:https://bbs.huaweicloud.com/forum/thread-143146-1-1.html

作者: devilmaycry

原文:

https://www.cnblogs.com/devilmaycry812839668/p/15023221.html

======================================================

相关内容参考:

https://www.cnblogs.com/devilmaycry812839668/p/15022320.html

=================================================================

docker 容器内安装 nccl  后,测试是否安装成功:

使用  NVIDIA公司官方提供的测试工具: nccl-tests

国内下载地址:

https://gitee.com/devilmaycry812839668/nccl-tests

下载后,进行编译: make

If CUDA is not installed in /usr/local/cuda, you may specify CUDA_HOME.

Similarly, if NCCL is not installed in /usr, you may specify NCCL_HOME.

默认,cuda的安装位置:/usr/local/cuda

默认,nccl的安装位置:/usr

如果cuda和nccl的安装位置不是默认的,而是手动选择其他地方的,那么需要在make的时候配置路径:

$ make CUDA_HOME=/path/to/cuda NCCL_HOME=/path/to/nccl
CUDA_HOME 为 cuda的安装路径。
NCCL_HOME 为 nccl的安装路径。

make 编译后进行简单的例子进行测试nccl是否安装成功。

Quick examples

Run on 8 GPUs (-g 8), scanning from 8 Bytes to 128MBytes :

$ ./build/all_reduce_perf -b 8 -e 128M -f 2 -g 8

Run with MPI on 40 processes (potentially on multiple nodes) with 4 GPUs each :

$ mpirun -np 40 ./build/all_reduce_perf -b 8 -e 128M -f 2 -g 4

(该例子假设系统中已经安装了 openmpi)

这里我们需要修改的示例代码的地方为  -g  ,  如果你有一个显卡,那么就是-g 1  , 如果有四个显卡就是 -g 4

需要注意的是如果有显卡内存不够用(被其他进程调用已经占满),那么需要设置环境变量: export CUDA_VISIBLE_DEVICES="0,1,2,3"

CUDA_VISIBLE_DEVICES 变量用来指定可以用来进行测试的显卡,同时修改-g 后的数值。

假设 1 号显卡已经没有显存,那么设置  export CUDA_VISIBLE_DEVICES="0,2,3"

运行:

./build/all_reduce_perf -b 8 -e 128M -f 2 -g 3
mpirun -np 40 ./build/all_reduce_perf -b 8 -e 128M -f 2 -g 3

===========================================================

在容器中安装  nccl 后使用  nccl-tests  测试后报错:

Failed to init nccl communicator for group

 

init nccl communicator for group nccl_world_group

78244:78465 [0] NCCL INFO Call to connect returned Connection timed out, retrying
78244:78466 [1] NCCL INFO Call to connect returned Connection timed out, retrying
78244:78465 [0] NCCL INFO Call to connect returned Connection timed out, retrying
78244:78466 [1] NCCL INFO Call to connect returned Connection timed out, retrying 

很大的可能就是建立容器的时候没有设置允许共享内存:  --ipc=host

解决方案:

重新建立容器,在建立时加入设置:   --ipc=host

形式如:   sudo docker run -it --ipc=host   **************************(其他参数这里不表)

docker下运行分布式代码报nccl错误:connect returned Connection timed out,成功解决相关推荐

  1. 运行go代码报错fork/exec ...main.exe: Access is denied.解决

    下面是初学go语言的一段简单代码,在代码运行过程中报错: 我运行代码的时候,360会弹框显示有木马侵入,不管选择清除木马,还是允许,最终运行都是势必,报错结果显示被拦截了. 解决方法:关闭电脑的杀毒软 ...

  2. 使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决

    使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决 在tomcat下运行打包的war包,访问时显示404 浅谈打包war包的方式 第一种: 第一步: 第 ...

  3. 命令行下运行 java someClass.class出现 “错误:找不到或无法加载主类someClass ” 的解决方案

    命令行下运行 java someClass.class出现 "错误:找不到或无法加载主类someClass " 的解决方案 参考文章: (1)命令行下运行 java someCla ...

  4. python3.7运行报错_Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False)?...

    Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False),详细报错信息如下: 2018-08-10 15:10:29 [s ...

  5. Docker下运行Presto访问Redis及BI展示

    Docker下运行Presto访问Redis及BI展示 1. 环境准备 1.1 安装docker 1.2 创建network 2. 安装tendis 2.1 创建数据盘 2.2 启动tendis 3. ...

  6. 运行JS代码报错:Uncaught TypeError: Cannot read property‘style‘ of undefined

    运行JS代码报错:Uncaught TypeError: Cannot read property'style' of undefined 这个报错的原因通常是没有获取指定的标签: 这个报错的原因通常 ...

  7. 运行php代码报错如下Uncaught Error: Call to undefined function curl_init()

    运行php代码报错如下Uncaught Error: Call to undefined function curl_init() 前提要配置好php环境变量,cmd执行php -m查看模块信息 缺少 ...

  8. RouterSploit学习笔记(ubuntu或docker下运行)

    RouterSploit学习笔记 1.在ubuntu虚拟机下运行 安装ubuntu 18.04 运行RouterSploit 2.win7 docker下运行RouterSploit 1.在ubunt ...

  9. Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

    Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法 1).容器中登录my ...

最新文章

  1. IOS开发笔记3-C语言基础复习
  2. JDK13 GA发布:5大特性解读
  3. Balanced Binary Tree
  4. AI理论知识基础(19)-线性变换(1)
  5. Mysql Order By 注入总结
  6. JAVA并发编程实践笔记
  7. 公差基本偏差代号_508/f7:基本偏差怎么查,标准公差又怎么查?
  8. Elasticsearch与Solr比较
  9. jconsole中无法显示本地启动的tomcat
  10. 最详细的Vivado安装教程
  11. 遭遇nat.exe,socks.exe,USP10.dll,BOSC.dll,kb080387.CNT,~ctwxw.txt等2
  12. 内存引起的蓝屏问题排查
  13. c语言图片渐入代码_如何用c语言读取图片
  14. EXCEL/WPS中的数组公式{},在钉钉用什么进行替代
  15. Redis基本应用及Java代码实现
  16. 改善磁带存储性能的五种方法
  17. mybatis 整合spring之mapperLocations配置的问题
  18. linux命令字典式总结(按用途分类)
  19. 酒精测试仪全国产化电子元件推荐方案
  20. win7中USB音箱没有声音解决办法

热门文章

  1. Windows安装Git cz (commitizen)
  2. OPENGL ES 2.0 知识串讲(2)――EGL详解
  3. 苹果输入法怎么换行_精选百度输入法皮肤|美美的几十款
  4. 什么命令能查看服务器的型号,查看服务器型号的命令
  5. Js获取字符串asc码
  6. 【视频开发】ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
  7. wifi频谱仪测试软件,使用频谱仪测试2.4G信号的测试方法,求助
  8. 反射在Java编程中的应用
  9. 技术人员如何从外包开始自己的事业
  10. 是不是不知道用什么命令查看mac系统信息?