2017-10-25 24 views
1

Amazon Deep Learning Linux AMIでmxnet GPUをRにインストールする際に問題があります。環境変数は、それほど巧妙でないsys-adminが把握することができない悪夢であるような混乱です。Amazonディープ学習用のmxnet GPU Rパッケージをインストールする際の問題AMI

ステップ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パッケージ化:USE_CUDA_PATHが設定されているにもかかわらず、ノート*

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 

config.mkファイルを編集しますlibcudart.soが見つかりません。また、makeコマンドでリンクする必要があります(後述)

手順3:makeコマンドでlibcudart.soを見つけることができる

/etc/ld.so.conf.d/cuda.conf 

メイクrpkgを支援するために、NVIDIAによって投稿さが、絶対に何もしませんしてこの/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(依存関係= TRUE)」 CD ..

ステップ5:

作るCXX = G ++ DEPS_PATH = /ホーム/ EC2ユーザー/ SRC/mxnet /:

cd /src/mxnet 
sudo make -j8 

の検索結果を作ります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'のパッケージまたは名前空間の読み込みに失敗しました:(ファイル、DLLパス= DLLパス、...) エラー:共有オブジェクト '/ usr/lib64/R/library /をロードできませんでした。 mxnet/libs/libmxnet.so ': libcudart.so.8。0:そのようなファイルやディレクトリはありません エラー:読み込み失敗 執行停止 ERROR:ロード

を失敗したので、それが存在しない場所で探しています。/ usr/lib64に/ R /ライブラリの共有オブジェクトファイルを開くことができません。/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

をも試み:libmxnet.soが 結果コピー次いで 1.実際のディレクトリを作成するディレクトリ(/ usr/lib64に/ R /ライブラリ/ mxnet/LIBS /)と:同じエラーを

  • makeコマンドに/ home/ec2-user/src/mxnet/R-package/inst/libs /を追加する sudo LD_LIBRARY_PATH =/home/ec2-user/src/mxnet/R-package/inst/libs make rpkg 結果:

    輸出MXNET_HOME =は/ usr/lib64に/ R /ライブラリ/ mxnet/libsに/ 輸出MXNET_HOME =は/ usr/lib64に/を:同じエラー

  • 環境のとんでもない額は、そのすべてが失敗したラベルR /ライブラリ/ mxnet/libsに/ libmxnet.so
    にsudo ldconfigのは/ usr/local/CUDA/lib64に sudoのLN -sは/ usr/lib64に/ R /ライブラリ/ mxnet/libsには/ usr/libに sudoのLN -s/ sudo ln -s/usr/lib/libmklml_intel.so/usr/lib sudo ln -s/usr/local/lib/lib/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 輸出LD_LIBRARY_PATH =は/ usr/local/CUDA-8.0 /ターゲット/ x86_64の-linuxの/ libに/:$ LD_LIBRARY_PATHの 輸出LD_LIBRARY_PATH =は/ usr/local/CUDA-8.0/lib64に/ libcudart.so.8.0

  • これらのうちの1つでは、mxnet Rパッケージが再び機能しなくなる前に簡単に作業していたので、私はこのインストールに50時間以上を割きました。それは率直に言ってばかげています。ソフトウェアをインストールするにはより厳しいです。それは実際のネットをプログラムすることです....

    私は5年以上のLinuxシステム管理者の知識がありませんので、環境変数を修正することが何を意味するのか分かりません。

    Rパッケージを正常にインストールした後でも、Rstudioサーバーの設定ファイルをrsession-ld-library-path =/opt/local/lib:/ usr/local/cuda/lib64

    答えて

    1

    sudoコマンドを実行しているときに次のことを試しましたか?

    sudo -E make -j8 
    

    これは、スーパーユーザーとして実行しているときにenv変数を保持することを意味します。 makeがライブラリを見つけるための新しい設定ファイルを追加する必要はありません。上記のコマンドを使用してenv変数を保存するだけで十分です。

    +0

    私が試した: 輸出LD_LIBRARY_PATH =/EC2-ユーザー/ SRC/mxnet/R- 輸出LD_LIBRARY_PATH = /ユーザー/ SRC/mxnet/R-パッケージ/計器/ libsにします。$ LD_LIBRARY_PATH 輸出LD_LIBRARY_PATH =/EC2を/ usr/local/cuda-9.0/lib64/libcudart.so.9.0 エクスポートコマンドの後にsudo ldconfigを使用してから、-Eをmake文に追加しました。 stackoverflowの提案ごと sudo -E make rpkg libmxnet.soとlibcudart.so.9.0のエラーが同じではない 「パッケージが可能であればテストできます。ロードされた部分。非検査モードでmake rpkgとR CMD INSTALLを実行するオプションはありますか? – Garglesoap

    +0

    環境変数が間違っています。 LD_LIBRARY_PATH =/home/ec2-userの代わりに、LD_LIBRARY_PATH =/ec2-user、およびcudaの場合はLD_LIBRARY_PATH =/usr/local/cuda/lib64:$ LD_LIBRARY_PATHです。これらのタイプミスですか?また、rpkgのすべてを実行したくない場合は、rpkgとrpkgtestの下にあるMakefileの行をコメントアウトすることができます。 – hungrypanda

    +0

    -EコマンドでLD_LIBRARY_PATH =/usr/local/cuda:LD_LIBRARY_PATHをエクスポートしようとしましたが、まだ運がありません。 もう1つの方法は、テストせずにrpackageを作成してから、R/Rstudioを設定して正しい環境変数をロードすることです。 makeファイルはどこにありますか? – Garglesoap

    関連する問題