LoginSignup
0
0

More than 5 years have passed since last update.

【失敗】Kepler環境でNeural Network Consoleを動かす

Last updated at Posted at 2018-08-08

SONYのニューラルネットワークを直観的に構築するツール「Neural Network Console」は、GPUを利用することで速く学習が可能になります。
ただしGPUの世代がKepkerだと、ちょっといじらないと動きません。

※ここではクラウド版ではなく、Windows版の「Neural Network Console」について書いています

【注意】
私の環境では、まだうまく動いていないので、真似しないほうがいいです。

エラーメッセージ

いじる前は、こんな感じでエラーになります。

2018-08-08 18:56:48,681 Training process is started.

・・・途中省略・・・

forward_function
    func.variable_inputs, func.variable_outputs)
  File "nnabla\function.pyx", line 188, in nnabla.function.Function.forward (D:\gitlab-ci\builds\862e82a9\2\nnabla\nnabla-builder\nnabla\python\src\nnabla\function.cpp:5145)
RuntimeError: target_specific error in nbla::cublas_gemm
C:\ci\builds\f124a89d\3\nnabla\nnabla-builder\nnabla-ext-cuda\src\nbla\cuda\cublas.cpp:50
Failed `status == CUBLAS_STATUS_SUCCESS`: ARCH_MISMATCH

CUDAのインストール

CUDA 8をインストールします。(バージョンは重要です)
インストール方法等は省略。

cuDNNのインストール

cuDNN 7をインストールします。(バージョンは重要です)
インストール方法等は省略。
※ログインが必要
※CUDA毎、Windows毎に異なるので注意

ライブラリの入れ替え

「Neural Network Console」から呼んでいるGPU呼び出しモジュールを入れ替えます。

パスの設定

linux環境ではおなじみのpipでモジュールのインストールを行いますので、「Neural Network Console」の以下の2つのフォルダにパスを通します。

  • (インストールフォルダ)\libs\Miniconda3
  • (インストールフォルダ)\libs\Miniconda3\Scripts

コマンドプロンプトを開き、以下のように実行します。

c:\hoge\nnc> set path=%path%;c:\hoge\nnc\libs\Miniconda3;c:\hoge\nnc\libs\Miniconda3\Scripts

入れ替え

pipを使って、古いライブラリを消し、新しいライブラリ(古いバージョンのライブラリ)をインストールします。

c:\hoge\nnc> pip uninstall nnabla-ext-cuda
c:\hoge\nnc> pip install nnabla-ext-cuda80==1.0.0

【参考】
ライブラリとCUDA/cuDNNの関係は以下の通りとのこと。

  • nnabla-ext-cuda80 (CUDA 8.0 x cuDNN 7.1)
  • nnabla-ext-cuda90 (CUDA 9.0 x cuDNN 7.1)
  • nnabla-ext-cuda91 (CUDA 9.1 x cuDNN 7.1)
  • nnabla-ext-cuda92 (CUDA 9.2 x cuDNN 7.1)

確認

ちゃんと動作するか、サンプルプロジェクトで確認してみます。

2018-08-08 19:05:18,694 Training process is started.

・・・途中省略・・・

2018-08-08 19:05:24,755 [nnabla]: Train with contexts ['cpu']
2018-08-08 19:05:24,770 [nnabla]: Training epoch 1 of 100 begin
2018-08-08 19:05:24,973 [nnabla]: epoch 1 of 100 cost=0.670640  {train_error=0.601071, valid_error=0.616336}
2018-08-08 19:05:25,082 [nnabla]: epoch 2 of 100 cost=0.557968  {train_error=0.514157, valid_error=0.542608}
2018-08-08 19:05:25,176 [nnabla]: epoch 3 of 100 cost=0.481263  {train_error=0.448142, valid_error=0.492721}
2018-08-08 19:05:25,301 [nnabla]: epoch 4 of 100 cost=0.423768  {train_error=0.401717, valid_error=0.450013}
2018-08-08 19:05:25,394 [nnabla]: epoch 5 of 100 cost=0.384835  {train_error=0.361735, valid_error=0.410510}
2018-08-08 19:05:25,441 [nnabla]: epoch 6 of 100 cost=0.344484 
2018-08-08 19:05:25,488 [nnabla]: epoch 7 of 100 cost=0.315490 
2018-08-08 19:05:25,535 [nnabla]: epoch 8 of 100 cost=0.296956 
2018-08-08 19:05:25,581 [nnabla]: epoch 9 of 100 cost=0.276522 
2018-08-08 19:05:25,691 [nnabla]: epoch 10 of 100 cost=0.255827  {train_error=0.248344, valid_error=0.310425}

・・・途中省略・・・

2018-08-08 19:05:30,190 [nnabla]: epoch 96 of 100 cost=0.060721 
2018-08-08 19:05:30,236 [nnabla]: epoch 97 of 100 cost=0.062549 
2018-08-08 19:05:30,283 [nnabla]: epoch 98 of 100 cost=0.053480 
2018-08-08 19:05:30,330 [nnabla]: epoch 99 of 100 cost=0.064627 
2018-08-08 19:05:30,439 [nnabla]: epoch 100 of 100 cost=0.060106  {train_error=0.056343, valid_error=0.119016}
2018-08-08 19:05:30,439 [nnabla]: Training Completed.
Please install the correct version of CUDA / CUDNN.
Or install correct nnabla_ext_cuda for installed version of CUDA/CUDNN.

あれ?

2018-08-08 19:05:24,755 [nnabla]: Train with contexts ['cpu']

あれあれ??

Please install the correct version of CUDA / CUDNN.
Or install correct nnabla_ext_cuda for installed version of CUDA/CUDNN.

でもまぁ動いたからいいか...う~ん。
なんとなく、ライブラリを変えるだけで、GPUを指定してもCPUで動くようになるような気がする...
※問題解決にはなってないけど

後日追記

ライブラリを戻しても、CUDAのバージョンを上げても、結局CPUで動くようになってしまったので、もう何がなんだかわからない...
一番最初のエラーはなんだったのか(苦笑)

手動で確認

>>> import nnabla_ext.cudnn
Please install the correct version of CUDA / CUDNN.
Or install correct nnabla_ext_cuda for installed version of CUDA/CUDNN.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\users\mine.soltec\desktop\neural network console\libs\miniconda3\lib\site-packages\nnabla_ext\cudnn\__init__.py", line 18, in <module>
    import nnabla_ext.cuda
  File "c:\users\mine.soltec\desktop\neural network console\libs\miniconda3\lib\site-packages\nnabla_ext\cuda\__init__.py", line 20, in <module>
    from .init import (
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
  • 「init.cp36-win_amd64.pyd」内でDLLがロードできていない模様。
    (「init.cp36-win_amd64.pyd」ではなく「init.pyd」が呼ばれている可能性もあり)
    ※「init.cp36-win_amd64.pyd」が呼び出せているのは確認済み
  • init.cp36-win_amd64.pyd → nnabla_cuda.dll → cudnn64_7.dll等という呼び出し構造になっている模様。
  • もしかしたら、全然別のDLLが見つからないのかもしれない

怪しい部分

  • 公式な対象がWindows8.1かWindows10の64bit版
    →確認しているのがWindows7の64bit版
  • 「Microsoft Visual C++ 2015 Redistributable」が必要
    →「Microsoft Visual C++ 2017 Redistributable」をインストールすると2015の方が消える

現時点での結論

Windows7+Kepler環境では、「Neural Network Console」は使い物にならない。

参考情報

https://groups.google.com/forum/#!topic/neural_network_console_users_jp/cbC87rHV4As
https://groups.google.com/forum/#!topic/neural_network_console_users/9OKrwn2oOIA
https://nnabla.readthedocs.io/en/latest/python/install_on_windows.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0