0

4 つの GPU を備えた aws マシンがあります。

00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
00:04.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
00:05.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
00:06.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)

私のtheanorcファイルは次のようになります。

[global]
floatX = float32
device = gpu0

[lib]
cnmem = 1

1 つの jupyter ノートブックを開いて theano をインポートすると、次のようになります (これは 1 つの GPU のみを使用していると想定しています)。

Using Theano backend.
Using gpu device 0: GRID K520 (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5105)
/home/sabeywardana/anaconda3/lib/python3.5/site-packages/theano/sandbox/cuda/__init__.py:600: UserWarning: Your cuDNN version is more recent than the one Theano officially supports. If you see any problems, try updating Theano or downgrading cuDNN to version 5.

ただし、同じマシンで同時に2番目のjupyterノートブックを開くと. 次に、エラーが発生します。

ERROR (theano.sandbox.cuda): ERROR: Not using GPU. Initialisation of device 0 failed:
initCnmem: cnmemInit call failed! Reason=CNMEM_STATUS_OUT_OF_MEMORY. numdev=1

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

gpu1 を使用するように .theanorc を手動で変更すると、2 番目の jupyter ノートブックは正常に動作します。問題は、.theanorc を構成して利用可能な GPU を取得する方法はありますか?

4

2 に答える 2

1

theano をインポートした後に GPU デバイスを変更することはできません。

これを試すことができるかもしれません-

import os
os.system("THEANO_FLAGS='device=gpu0' python script_1.py")
os.system("THEANO_FLAGS='device=gpu1' python script_2.py")
os.system("THEANO_FLAGS='device=gpu1' python script_3.py")
os.system("THEANO_FLAGS='device=gpu1' python script_4.py")

ノートブック内から(よりプログラム的に)実行したい場合は、次のスニペットを使用できます:-

import theano.sandbox.cuda
theano.sandbox.cuda.use("gpu0")

これをすべてのノートブックに貼り付けて、gpu id を変更します。それが動作します。

于 2016-11-25T13:01:55.227 に答える