0

我想运行一个用 Python 编写并使用 Tensorflow 的脚本。由于服务器与其他同事共享,我想限制我的脚本最多使用服务器拥有的 GPU 内存的 1/3。

为了实现这一点,我执行以下操作:

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

但是当我通过命令检查 GPU 内存使用情况时,nvidia-smi它说所有这些都已分配。服务器上有 2 个 GPU,似乎我的脚本完全分配了它们。我究竟做错了什么 ?

我上面写的不是脚本的第一行代码。我先做一些数据处理。但如果我把它放在一开始,它也不会改变。

4

1 回答 1

0

一个部分答案是在调用名为$CUDA_VISIBLE_DEVICES=0. 有了这个,您可以将使用限制为您指定的 GPU-ID(本例中为 GPU 0)

有关更多信息,请参阅CUDA 可见设备

于 2017-06-02T10:20:25.097 回答