To test some code only when it need GPU: Use theano flag init_gpu_device=gpu1
。 The difference between device
and init_gpu_device
is that the former one uses GPU for all the ops, while the latter one only does so when it is needed.
linzhou@eos11:~/Theano$ THEANO_FLAGS=init_gpu_device=gpu1 ~/Theano/bin/theano-nose test_gpueye ~/Theano/theano/sandbox/cuda/tests/test_basic_ops.py
WARNING (theano.sandbox.cuda): GPU device gpu1 will be initialized, and used if a GPU is needed. However, no computation, nor shared variables, will be implicitly moved to that device. If you want that behavior, use the 'device' flag instead.
Using gpu device 1: GeForce GT 610 (CNMeM is disabled, cuDNN not available)
theano-nose
is a script which wraps nose with a bunch of proper theano flags. We can use it as if it is nose. e.g.:
linzhou@eos11:~/Theano$ THEANO_FLAGS=init_gpu_device=gpu1 ~/Theano/bin/theano-nose ~/Theano/theano/sandbox/cuda/tests/test_basic_ops.py:test_gpueye
In nose, add the flag -s
to enable break points.
1