關於TensorFlow的GPU設置


摘自:https://blog.csdn.net/byron123456sfsfsfa/article/details/79811286

1.  在使用GPU版的TensorFlow跑程序的時候,如果不特殊寫代碼注明,程序默認是占用所有主機上的GPU,但計算過程中只會用其中一塊。也就是你看着所有GPU都被占用了,以為是在GPU並行計算,但實際上只有其中一塊在運行;另外的所有顯卡都閑着,但其顯存都被占用了,所以別人也用不了。不過這種情況通過在程序之前加三行代碼就可以解決:

1 import os
2 os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
3 # 保證程序中的GPU序號是和硬件中的序號是相同的
4 
5 os.environ['CUDA_VISIBLE_DEVICES'] = "0,1"
6 # 屏蔽掉系統中除 gpu0 和 gpu1 (gpu序號要根據實際情況來定)之外所有的GPU設備
7 # 即設置僅gpu0,gpu1可見
8 # os.environ['CUDA_VISIBLE_DEVICES'] = "" 即不使用gpu

2. 避免TensorFlow程序會吃掉所用顯卡的所有顯存,設置程序需要多少顯存就用多少

1 # TensorFlow程序會吃掉所用顯卡的所有顯存
2 # 如果想讓程序需要多少顯存就用多少
3 # 創建 session 的時候加一項設置
4 config = tf.ConfigProto(log_device_placement=FLAGS.log_device_placement)
5 config.gpu_options.allow_growth = True
6 session = tf.Session(config=config)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM