如何防止在Python代码中使用特定的GPU
我的问题与相同,但它没有解决我的问题 我的电脑中有4个GPU,我想在GPU 0上运行代码,但每当我运行tensorflow代码时,我的代码总是只在GPU 2上运行。在阅读这些(,)解决方案和信息时,我试图通过添加以下内容来解决我的问题:如何防止在Python代码中使用特定的GPU,python,tensorflow,pycharm,Python,Tensorflow,Pycharm,我的问题与相同,但它没有解决我的问题 我的电脑中有4个GPU,我想在GPU 0上运行代码,但每当我运行tensorflow代码时,我的代码总是只在GPU 2上运行。在阅读这些(,)解决方案和信息时,我试图通过添加以下内容来解决我的问题: os.environ['CUDA\u VISIBLE\u DEVICES']=“0”在python代码中 或CUDA\u可见\u设备作为PyCharm项目配置设置中的环境变量 此外,我还在代码或环境变量中添加CUDA\u LAUNCH\u BLOCKING=2
在python代码中os.environ['CUDA\u VISIBLE\u DEVICES']=“0”
- 或
作为PyCharm项目配置设置中的环境变量CUDA\u可见\u设备
- 此外,我还在代码或环境变量中添加
,以阻止GPU 2。这是阻止任何GPU的正确方法吗CUDA\u LAUNCH\u BLOCKING=2
- Ubuntu 16.04
- RTX2080Ti(全部4个GPU)
- 驱动程序版本418.74
- CUDA 9.0和CuDNN 7.5
- Tensorflow gpu 1.9.0
对这个问题有什么建议吗?在PyCharm或python代码的项目设置中添加环境变量。。。仍然只有GPU 2可见。当我移除CUDA可视设备时,tensorflow会检测到所有4个GPU,但代码只在GPU 2上运行。我在tensorflow 2.0.0中尝试了这一点
physical_devices = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_visible_devices(physical_devices[0], 'GPU')
logical_devices = tf.config.experimental.list_logical_devices('GPU')
这将使u r代码在GPU索引0中运行u可以检查这一点,NVIDIA_VISIBLE_DEVICES=$GPU_id CUDA_VISIBLE_DEVICES=0将GPU id设置为GPU所需的0、1、2或3。您的建议在TF2.0中运行良好,但在TF1.9中不起作用,我认为在2.0中某些功能发生了更改。通过检查这些链接,我试图在TF1.9中获得相同的可能性。和要使用某些GPU,有一种最简单的方法在中定义了
MirroredStrategy()
,但它也不起作用。您可以尝试MultiWorkerMirroredStrategy吗?我在tf2.0中也尝试过这种方法