我无法在亚马逊深度学习linux AMI上安装mxnet GPU for R。环境变量是如此混乱,任何非专家系统管理员都要弄清楚这是一场噩梦。
第1步:安装大量丢失/损坏的程序和R软件包
sudo yum install R
sudo yum install libxml2-devel
sudo yum install cairo-devel
sudo yum install giflib-devel
sudo yum install libXt-devel
sudo R
install.packages("devtools")
library(devtools)
install_github("igraph/rigraph")
install.packages(‘DiagrammeR’)
install.packages(‘roxygen2’)
install.packages(‘rgexf’)
install.packages(‘influenceR’)
install.packages(‘Cairo’)
install.packages(“imager”)
第2步:编辑config.mk文件
cd /src/mxnet
cp make/config.mk .
echo "USE_BLAS=openblas" >>config.mk
echo "ADD_CFLAGS += -I/usr/include/openblas" >>config.mk
echo "ADD_LDFLAGS += -lopencv_core -lopencv_imgproc -lopencv_imgcodecs" >>config.mk
echo "USE_CUDA=1" >>config.mk
echo "USE_CUDA_PATH=/usr/local/cuda" >>config.mk
echo "USE_CUDNN=1" >>config.mk
*注意即使设置了USE_CUDA_PATH,它仍然找不到libcudart.so并且需要在make命令中链接(稍后显示)
步骤3:创建新的配置文件,以便make命令可以找到libcudart.so
/etc/ld.so.conf.d/cuda.conf
添加/usr/local/cuda-8.0/lib64
sudo ldconfig
第4步:设置R目录
Rscript -e "install.packages('devtools', repo = 'https://cran.rstudio.com')"
cd R-package
Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cran.rstudio.com'));
install_deps(dependencies = TRUE)" cd ..
第5步:制作
cd /src/mxnet
sudo make -j8
结果:
make CXX = g ++ DEPS_PATH = / home / ec2-user / src / mxnet / deps -C / home / ec2-user / src / mxnet / ps-lite ps
cd / home / ec2-user / src / mxnet / dmlc-core; make libdmlc.a USE_SSE = 1 config = / home / ec2-user / src / mxnet / config.mk; cd / home / ec2-user / src / mxnet
make [1]:输入目录/home/ec2-user/src/mxnet/dmlc-core'
make[1]:
libdmlc.a'已是最新。
make [1]:离开目录/home/ec2-user/src/mxnet/dmlc-core'
make[1]: Entering directory
/ home / ec2-user / src / mxnet / ps-lite'
make [1]:ps'.
make[1]: Leaving directory
/ home / ec2-user / src / mxnet / ps-lite'无法完成任务。
ar crv lib / libmxnet.a
*请注意,即使更改config.mk文件,make命令也始终返回“无需更新”
第6步:尝试制作rpkg
Cd /src/mxnet
Sudo make rpkg
错误: 错误:'mxnet'的包或命名空间加载失败: .onLoad在loadNamespace()中失败,对于' mxnet',详情: call:dyn.load(file,DLLpath = DLLpath,...) 错误:无法加载共享对象' /usr/lib64/R/library/mxnet/libs/libmxnet.so': libcudart.so.8.0:无法打开共享对象文件:没有这样的文件或目录 错误:加载失败 执行停止 错误:加载失败
所以它正在寻找一个不存在的位置:/ usr / lib64 / R / library / mxnet / libs / 当文件实际存在时: /home/ec2-user/src/mxnet/R-package/inst/libs/libmxnet.so 要么 /home/ec2-user/src/mxnet/lib/libmxnet.so
到目前为止我尝试过:
sudo LD_LIBRARY_PATH=/usr/local/cuda/lib64 make rpkg
这将解决缺少的libcudart.so.8.0问题,但它只是替换为: libmklml_intel.so:无法打开共享对象文件:没有这样的文件或目录以及原来的'找不到libmxnet.so
还尝试过: 1.实际创建目录(/ usr / lib64 / R / library / mxnet / libs /)然后复制libmxnet.so 结果:同样的错误
将/ home / ec2-user / src / mxnet / R-package / inst / libs /添加到make命令 sudo LD_LIBRARY_PATH = / home / ec2-user / src / mxnet / R-package / inst / libs make rpkg 结果:同样的错误
所有失败的荒谬环境标签:
导出MXNET_HOME = / usr / lib64 / R / library / mxnet / libs /
export MXNET_HOME = / usr / lib64 / R / library / mxnet / libs / libmxnet.so
sudo ldconfig / usr / local / cuda / lib64
sudo ln -s / usr / lib64 / R / library / mxnet / libs / usr / lib
sudo ln -s /usr/lib64/R/library/mxnet/libs/libmxnet.so / usr / lib
sudo ln -s /usr/local/lib/libmklml_intel.so / usr / lib
sudo ln -s /usr/local/lib/libiomp5.so / usr / lib
sudo ln -s / usr / local / usr / lib
export LD_LIBRARY_PATH = / usr / local / cuda-8.0 / lib64 / libcudart.so.8.0
export LD_LIBRARY_PATH = / usr / lib64 / R / library / mxnet / libs / libmxnet.so / usr / lib
export LD_LIBRARY_PATH = / usr / local / cuda-8.0 / targets / x86_64-linux / lib /:$ LD_LIBRARY_PATH
export LD_LIBRARY_PATH = / usr / local / cuda-8.0 / lib64 / libcudart.so.8.0
在所有这些工作中,因为我在mxnet R包再次崩溃之前简要地让它运行了。我已经放弃了50多个小时进入这个装置,坦率地说这是荒谬的。更难以安装软件,然后编程实际网络....
我没有5年以上的linux系统管理员知识,所以如果你愿意的话请更加有用,然后'修复环境变量'。我可以说明显有什么不对,但不知道'修复环境'变量需要。
最重要的是,即使在成功安装R软件包之后,在将Rstudio服务器的配置文件设置为:rsession-ld-library-path = / opt / local / lib:/ usr / local之前,它仍然无法工作/ CUDA / lib64下
答案 0 :(得分:1)
运行任何sudo命令时是否尝试过以下操作。
sudo -E make -j8
这意味着它将以超级用户身份运行时保留env变量。您不必为make添加新的配置文件来查找库。只需使用上面的命令保留env变量即可。