转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/5717234.html

参考网址:

https://github.com/NVIDIA/nccl

https://github.com/ngimel/nccl.torch

http://zhidao.baidu.com/link?url=k99LndiVbIM1YAoCoyS1T2MWU-hY8aOtE9NbMPEY2noImKX5aHWcy7Ht600HRATQxIeg_FIIGW-UboWgawcnY_

1. 在https://github.com/NVIDIA/nccl中下载nvidia的nccl,并解压。

2. 将终端cd到该文件夹。

3. 输入如下命令:

make CUDA_HOME=<cuda install path> test

如:

make CUDA_HOME=</usr/local/CUDA-7.5> test

4. 等待编译完成后,将下面的加入.profile中

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/XXX/nccl-master/build/lib

5. 更新.bashrc(我这边没管用,重启后就行了)

sourch ~/.bashrc

6. 运行测试程序,成功了。

./build/test/single/all_reduce_test 10000000

说明:官网中说:To install, run make PREFIX=<install dir> install and add <instal dir>/lib to your LD_LIBRARY_PATH.

但是我没有用这一步,也可以了。。。

http://zhidao.baidu.com/link?url=k99LndiVbIM1YAoCoyS1T2MWU-hY8aOtE9NbMPEY2noImKX5aHWcy7Ht600HRATQxIeg_FIIGW-UboWgawcnY_指出:

不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。
指定prefix,直接删掉一个文件夹就够了。

7. 直接使用luarocks install nccl或者在https://github.com/ngimel/nccl.torch中下载工程,并cd到该文件夹,使用luarocks 进行install即可。

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

180320更新:

今天在使用anaconda并编译caffe时,出现crtbeginS.o:unrecognized relocation的错误。解决方法吐下:

1. 修改makefile文件

直接在Makefile最开始增加下面一句话:

CXX := /usr/bin/g++-4.9

之后在终端中直接使用官方的编译命令即可:

make CUDA_HOME=/usr/local/cuda-8.0

方法2:输入make时增加CXX标志位

https://www.cnblogs.com/sky-heaven/p/6272408.html中指出:

= 是最基本的赋值

:= 是覆盖之前的值

?= 是如果没有被赋值过就赋予等号后面的值

+= 是添加等号后面的值

因而考虑直接添加CXX的标志,如下:

make CXX=/usr/bin/g++-4.9 CUDA_HOME=/usr/local/cuda-8.0

弱弱的说一下,终端中输入下面的命令,也可以:

make CXX?=/usr/bin/g++-4.9 CUDA_HOME=/usr/local/cuda-8.0

如果要使用nccl,如https://www.cnblogs.com/haiyang21/p/7183413.html中所说,需要Makefile.config中取消注释USE_NCCL := 1,并将NCCL的include和lib路径增加到Makefile.config中,具体如下:

USE_NCCL :=
INCLUDE_DIRS += /path/nccl/build/include
LIBRARY_DIRS += /path/nccl/build/lib

但如果使用的是anaconda,可能会提示找不到某个库。。。后来决定不使用nccl了,因而没有继续深入查找原因。见谅。

安装nccl及可能碰到的问题见:

http://www.cnblogs.com/darkknightzh/p/5717234.html

http://www.cnblogs.com/darkknightzh/p/6950263.html

180320更新结束

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

05-11 14:03