theanoライブラリをインポートしようとするとすぐに、次のエラーが発生します。
>>> import theano
ERROR (theano.sandbox.cuda): ERROR: Not using GPU. Initialisation of device gpu failed:
initCnmem: cnmemInit call failed! Reason=CNMEM_STATUS_OUT_OF_MEMORY. numdev=1
私の.theanorcの内容:
[global]
floatX = float32
device = gpu
optimizer = fast_run
[lib]
cnmem = 0.9
[nvcc]
fastmath = True
[blas]
ldflags = -llapack -lblas
[cmodule]
mac_framework_link=True
また、theano フラグを使用して python 環境を実行しようとしましたが、それでも同じ問題が発生します。
$ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32,lib.cnmem=0.9 python3
彼らはまた、Theano Github ページで同様の問題について言及しています:デバイス gpu の初期化に失敗しました! 、しかし、彼らは私が正しく設定したと思っていたfloat
対int
値について話しています(特別な理由はありませんが、実際に、、および他のいくつかの値を試してみましたが、同じ結果が得られました)。CNMeM
0.9
1.0
0.95
0.5
私のセットアップ:
- Mac OS X 10.11.4
- Xcode 7.2 (7.3 からダウングレードする必要がありました)
- クーダ 7.5.19
- パイソン 3.5.1
解決:
まず第一に、の値が総メモリの % であることを認識していませんでしたCNMeM
。また、2 台のモニターで GPU を使用していたため、実際には余裕のあるメモリがあまりありませんでしたが、とにかく試してみましたが0.1
、動作します。
cuDNN が無効になっている場合の 2 番目の問題は、次の行を theano 構成に追加することで解決しました。
optimizer_including = cudnn
詳細については、このページを参照してください: sandbox/cuda/dnn