[英]Issues installing mxnet GPU R package for Amazon deep learning AMI
我在 Amazon 深度學習 linux AMI 上為 R 安裝 mxnet GPU 時遇到問題。 環境變量是如此混亂,以至於任何非專業系統管理員都無法弄清楚。
第 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 ; 使 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
做ps'. make[1]: Leaving directory
ps'. make[1]: Leaving directory
/home/ec2-user/src/mxnet/ps-lite' ar crv lib/libmxnet.a
*注意,即使在更改 config.mk 文件時,make 命令也始終返回“nothing to update”
第 6 步:嘗試制作 rpkg
Cd /src/mxnet
Sudo make rpkg
錯誤:錯誤:“mxnet”的包或命名空間加載失敗:“mxnet”的 loadNamespace() 中的 .onLoad 失敗,詳細信息:調用: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/導出 MXNET_HOME=/usr/lib64/R/library/mxnet/libs/libmxnet.so
須藤 ldconfig /usr/local/cuda/lib64 須藤 ln -s /usr/lib64/R/library/mxnet/libs /usr/lib 須藤 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 導出 LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/libcudart.so.8.0 導出 LD_LIBRARY_PATH=/usr/lib64/R/library/mxnet/libs/libmxnet.so /usr/lib 導出 LD_LIBRARY_PATH=/usr/本地/cuda-8.0/targets/x86_64-linux/lib/:$LD_LIBRARY_PATH 導出 LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/libcudart.so.8.0
在所有這些工作中,因為我在 mxnet R 包再次崩潰之前短暫地運行了它。 我已經在這個安裝中投入了 50 多個小時,坦率地說,這很荒謬。 安裝軟件更難,然后是編程一個實際的網絡......
我沒有 5 年以上的 linux sys 管理知識,所以如果您願意,請比“修復環境變量”更有幫助。 我可以說這顯然是出了什么問題,但不知道“修復環境變量”意味着什么。
最重要的是,即使成功安裝了 R 包,它仍然無法工作,直到將 Rstudio 服務器的配置文件設置為:rsession-ld-library-path=/opt/local/lib:/usr/local/cuda/庫64
您在運行任何 sudo 命令時是否嘗試過以下操作。
sudo -E make -j8
這意味着它將在以超級用戶身份運行時保留 env 變量。 您不必為 make 添加新的配置文件來查找庫。 僅使用上述命令保留 env 變量就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.