tensorflow多GPU多进程占用问题

问题描述:

import tensorflow之后, train model时报错;
报错信息:Internal: failed initializing StreamExecutor for CUDA device ordinal 3: Internal: failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_OUT_OF_MEMORY; total memory reported: 8506179584

报错原因:

Tensorflow默认会使用尽可能多的GPU,并且占用所使用的GPU。因此如果有别的Tensorflow正在使用GPU,而自己的程序使用默认配置,那么是无法使用已经被使用的GPU的,也无法单独使用一块没有被使用的GPU,导致报错。

查看此时服务器上GPU的使用情况:可以看出我自己的程序报错正是这个原因,服务器上的jupyter已经在运行其他程序,占用了一块GPU,而我的程序并没有对GPU进行设置,而是使用的是默认的配置。
在这里插入图片描述

解决方法:

在程序里指定其他的GPU,比如‘1’

import os
os.environ["CUDA_VISIBLE_DEVICES"]="1"

更改之后,就可以正常运行了。
查看此时GPU的使用情况,两个程序占用两块GPU.
在这里插入图片描述
1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值