Ray tune with environment using GPU

So I have an environment doing some fluid dynamics on a gpu. I want to use some rllib algorithms and tune to train an agent in this environment. I don’t have a proper cuda for tensorflow and simulating the environment will still be the bottleneck so I don’t care enough to fix it. Can I assign a gpu to a worker without ray complaining that tensorflow can’t use it the gpu that was assigned?

The environment works fine without ray. The code running ray is pretty much just

ray.init()
tune.run("PPO", config={"env": TestEnv, "num_workers": 1, "num_gpus_per_worker": 1}) 

which results in

...
RuntimeError: GPUs were assigned to this worker by Ray, but your DL framework (tf) reports GPU acceleration is disabled. This could be due to a bad CUDA- or tf installation.
...

Could you simply try to comment out this error in the code and see what happens?
ray/rllib/evaluation/rollout_worker.py:~508

Before I saw this I actually just went and installed a full cuDNN so that tf would stop complaining to ray and that worked fine. But this seems like it would also solve my problem, I disabled the cuDNN installation and commented out the line for that error and it seems to run like it should.

Thanks for taking the time anyway!

2 Likes