Calling fuel starts up theano.sandbox.cuda?

178 views
Skip to first unread message

Arvid Frydenlund

unread,
Aug 16, 2016, 4:06:18 PM8/16/16
to fuel-users
I thought fuel was independent of theano?   However it ends up calling theano.sandbox.cuda

some examples

python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from fuel.datasets.hdf5 import H5PYDataset
ERROR (theano.sandbox.cuda): ERROR: Not using GPU. Initialisation of device 1 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


python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from fuel.streams import DataStream
ERROR (theano.sandbox.cuda): ERROR: Not using GPU. Initialisation of device 1 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

David Warde-Farley

unread,
Aug 17, 2016, 2:22:40 AM8/17/16
to Arvid Frydenlund, fuel-users
Looks like it tries to use Theano's value for floatX as the default, and importing theano.config triggers Theano's module-level import side effects.

The try/catch block should catch it, though. Wonder why it doesn't.

--
You received this message because you are subscribed to the Google Groups "fuel-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fuel-users+unsubscribe@googlegroups.com.
To post to this group, send email to fuel-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fuel-users/443e8c1e-fdd7-47cf-97d9-1cc096201709%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

David Warde-Farley

unread,
Aug 18, 2016, 6:30:55 PM8/18/16
to Arvid Frydenlund, fuel-users
Arvid, did the import crash or did it just display those warning messages?


On Tue, Aug 16, 2016 at 4:06 PM, Arvid Frydenlund <arvidfr...@gmail.com> wrote:

Arvid Frydenlund

unread,
Aug 19, 2016, 12:56:25 PM8/19/16
to fuel-users, arvidfr...@gmail.com
I don't think it crashed but I don't remember and can't actually reproduce the CNMEM error again


python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from fuel.datasets.hdf5 import H5PYDataset
Using gpu device 0: GeForce GTX TITAN X
>>>

my .theanorc looks like so

[global]
device=gpu0
floatX=float32

[cuda]
root=/pkgs/cuda-7.5/

[lib]
cnmem = 0.95

So I was getting that CNMEM error because I was requesting  all the GPU memory when another user had already done the same.  However I tried again today on a gpu that looked like it was out of memory and got the above results. 


I'll check out your patch.


Is there a way of setting floatX in .fuelrc and then using the FUEL_NO_THEANO flag so that I can still have 32 floats while bypassing theano? 
To unsubscribe from this group and stop receiving emails from it, send an email to fuel-users+...@googlegroups.com.

David Warde-Farley

unread,
Aug 20, 2016, 12:53:08 AM8/20/16
to Arvid Frydenlund, fuel-users
Yes, you do exactly that. Set floatX in .fuelrc to float32 and use the flag.

The buildbot is currently failing for reasons I don't completely understand but I think that patch should work...

To unsubscribe from this group and stop receiving emails from it, send an email to fuel-users+unsubscribe@googlegroups.com.

To post to this group, send email to fuel-...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages