2017-05-25 68 views
0

我想運行一個用Python編寫的腳本並使用Tensorflow。即使服務器與其他同事共享,我想限制我的腳本最多使用服務器的三分之一GPU內存。儘管有其他說法,但Tensorflow會分配所有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

一個部分答案是在調用名爲$CUDA_VISIBLE_DEVICES=0的腳本之前設置一個環境變量。有了這個,您可以將使用限制爲您指定的GPU-ID(本例中爲GPU 0)

更多相關信息,請參閱CUDA visible devices

相關問題