2016-08-31 8 views
0

Scientific Linuxリリース6.6(Carbon)を実行しているクラスタコンピュータでroot以外のユーザーです。LinuxでcuDNNを使用してTheanoをクラッシュさせる

CUDA 7.5とcuDNN 5を使用してGPUでコードを実行すると、いくつかのTheanoクラッシュが発生します。Python 2.7、Theano 0.9、Keras 1.0.7、Lasange 0.1を使用しています。

次のクラッシュは、cuDNNを有効にしてGPUノードでプログラムを実行した場合にのみ発生します。コードはcuDNNを無効にしてCPUとGPUで問題なく完了します。

Traceback (most recent call last): 
    File "runner.py", line 306, in <module> 
    main() 
    File "runner.py", line 241, in main 
    queries_exp = __import__(args.exp_model).queries_exp 
    File "/mnt/nfs2/inf/tjb32/workspace/CNN_EL/nlp-entity-convnet/exp_multi_conv_cosim.py", line 923, in <module> 
    queries_exp = EntityVectorLinkExp() 
    File "/mnt/nfs2/inf/tjb32/workspace/CNN_EL/nlp-entity-convnet/exp_multi_conv_cosim.py", line 51, in __init__ 
    self._setup() 
    File "/mnt/nfs2/inf/tjb32/workspace/CNN_EL/nlp-entity-convnet/exp_multi_conv_cosim.py", line 543, in _setup 
    on_unused_input='ignore', 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/compile/function.py", line 326, in function 
    output_keys=output_keys) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/compile/pfunc.py", line 484, in pfunc 
    output_keys=output_keys) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/compile/function_module.py", line 1788, in orig_function 
    output_keys=output_keys).create(
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/compile/function_module.py", line 1467, in __init__ 
    optimizer_profile = optimizer(fgraph) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 102, in __call__ 
    return self.optimize(fgraph) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 90, in optimize 
    ret = self.apply(fgraph, *args, **kwargs) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 235, in apply 
    sub_prof = optimizer.optimize(fgraph) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 90, in optimize 
    ret = self.apply(fgraph, *args, **kwargs) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 235, in apply 
    sub_prof = optimizer.optimize(fgraph) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 90, in optimize 
    ret = self.apply(fgraph, *args, **kwargs) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 2262, in apply 
    lopt_change = self.process_node(fgraph, node, lopt) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 1825, in process_node 
    lopt, node) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 1719, in warn_inplace 
    return NavigatorOptimizer.warn(exc, nav, repl_pairs, local_opt, node) 
    File "/home/t/tj/tjb32/.local/lib/python2.7/site-packages/theano/gof/opt.py", line 1705, in warn 
    raise exc 
AssertionError 

マイ.theanorcは次のようになります。

[global] 
floatX = float32 
device = gpu 

[lib] 
cnmem = 1 

[nvcc] 
fastmath = True 

そして、私のプロフィールは以下があります。

export LD_LIBRARY_PATH=/home/t/tj/tjb32/cuda/lib64:$LD_LIBRARY_PATH 
export CPATH=/home/t/tj/tjb32/cuda/include:$CPATH 
export LIBRARY_PATH=/home/t/tj/tjb32/cuda/lib64:$LD_LIBRARY_PATH 
export PATH=/home/t/tj/tjb32/cuda/bin:$PATH 

私はtheanoを照会すると、以下のことを私に示唆している、返されますtheanoはCUDAとcuDNNと相互作用しています。誰でもいただければ幸いプログラムを、クラッシュするcuDNNを引き起こしている私はそれを見逃している可能性のある追加の設定手順を示唆することができれば

Using gpu device 0: Tesla K20m (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5005) 

私は、私が正しくCUDAとcuDNNがインストールされていることをかなり確信しています。これは問題なく、可能ならば

+0

あなたができましたあなたの問題/問題を解決するには? –

答えて

0

わからない: 輸出LIBRARY_PATH = /ホーム/ T/TJ/tjb32/CUDA/lib64に:$ LD_ LIBRARY_PATH はすべきですか? export LIBRARY_PATH =/home/t/tj/tjb32/cuda/lib64:$ LIBRARY_PATH

+0

こんにちは、それはクラッシュを修正しなかったが、それを指摘してくれてありがとう! – Lee

0

また、KerasでDNNを実行するにはCUDA-7.5とCuDNN 5を使用します。私は私の家に別のディレクトリ(cuDNN/copy)を作成し、すべてのCuDNN(nvidiaウェブサイトから入手)ファイル(.soと.hファイル)をこのディレクトリに入れました。次に、bashrcのPATH変数とLD_LIBRARY変数を適切に変更しました。私も.theanorcファイルを変更しました。 DNNは私のために働いています。 これは私のbashrcにはどのように見えるかである -

########################## 
# CUSTOMIZATIONS GO HERE # 
########################## 
export PATH="https://stackoverflow.com/users/start2015/r0605639/miniconda2/envs/kerPy3.4/bin:$PATH" 
export PATH="/usr/local/cuda/bin:$PATH" 
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$PATH" 

#http://www.chioka.in/why-is-keras-running-so-slow/ 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64:/users/start2015/r0605639/cuDNN/copy: 
export LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64:/users/start2015/r0605639/cuDNN/copy: 
export CPATH=$CPATH:/users/start2015/r0605639/cuDNN/copy: 
export PATH=$PATH:/usr/local/cuda-7.5/bin 

これは私の.theanorcがどのように見えるかです: [グローバル] デバイス= GPU
floatX =のfloat32 オプティマイザ= fast_run

[blas] 
ldflags = -L/users/start2015/r0605639/kerasLibs/lib -lopenblas 

[lib] 
cnmem = 0.8 

[cuda] 
root = /usr/local/cuda-7.5 

[nvcc] 
fastmath = True 
optimizer_including=cudnn 
flags=-D_FORCE_INLINES -I/usr/local/cuda-7.5/include -I/usr/local/cuda-7.5/bin 

[dnn] 
enabled = True 
関連する問題