我想运行一个用Python编写的脚本并使用Tensorflow。如果服务器与其他同事共享,我想限制我的脚本使用服务器最多1/3的GPU内存。
为了实现这一目标,我将采取以下措施:
with tf.Graph().as_default():
gpu_options = tf.GPUOptions(allow_growth=True, per_process_gpu_memory_fraction=0.3)
session_conf = tf.ConfigProto(
allow_soft_placement=True,
log_device-placement=False,
gpu_options=gpu_options)
with tf.Session(conf=session_conf) as sess:
# some stuff
但是当我通过nvidia-smi
命令检查GPU内存使用情况时,它表示所有内容都已分配。服务器上有2个GPU,似乎我的脚本完全分配了它们。我做错了什么?
我上面写的不是脚本的第一行代码。我先做一些数据处理。但是,如果我把它放在一开始,它也不会改变。
答案 0 :(得分:0)
一个部分答案是在调用名为$CUDA_VISIBLE_DEVICES=0
的脚本之前设置环境变量。使用此功能,您可以将使用限制为您指定的GPU-ID(本例中为GPU 0)
有关详情,请参阅CUDA visible devices