服務器端的GPU使用


服務器端的GPU使用

查看GPU信息

  • 查看nvidia GPU信息:

    # 輸入指令
    lspci | grep -i nvidia
    # 結果如下:
    # 04:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 05:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 08:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 09:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 84:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 85:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 88:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 89:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    

    輸出結果04:00.0,可用於后續查看詳細的信息

  • 查看指定顯卡的詳細信息:

    # 輸入指令:
    lspci -v -s 04:00.0
    # 輸出結果:
    # 04:00.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1)
    # 	Subsystem: NVIDIA Corporation Device 1214
    # 	Flags: bus master, fast devsel, latency 0, IRQ 26, NUMA node 0
    # 	Memory at c4000000 (32-bit, non-prefetchable) [size=16M]
    # 	Memory at 27800000000 (64-bit, prefetchable) [size=16G]
    # 	Memory at 27c00000000 (64-bit, prefetchable) [size=32M]
    # 	Capabilities: <access denied>
    # 	Kernel driver in use: nvidia
    # 	Kernel modules: nvidiafb, nouveau, nvidia_384_drm, nvidia_384
    

查看GPU的使用信息

  • nvidia-smi

    其主要看Memory-Usage欄,避免使用了其他人已經占用了顯卡

  • 一般使用如下指令,周期性查看顯卡的使用情況:

    watch -n 10 nvidia-smi
    

    每10s刷新一下顯示

參考:Linux查看GPU信息和使用情況

指定GPU進行訓練

在查看了GPU的信息后,在訓練是指定空閑的GPU進行訓練。

  • 在終端執行時指定GPU

    CUDA_VISIBLE_DEVICES=0 python3 ***.py  # 指定GPU集群中第一塊GPU使用,其他的屏蔽掉
    
    # CUDA_VISIBLE_DEVICES=1           Only device 1 will be seen
    # CUDA_VISIBLE_DEVICES=0,1         Devices 0 and 1 will be visible
    # CUDA_VISIBLE_DEVICES=""          No GPU will be visible
    
  • 在配置文件頭上指定GPU,此方法和上述方法類似,以下舉個例子:

    • 創建.sh文件;
    • 通過chmod +x ***.sh給文件加入可執行的屬性;
    • 在文件中寫入:
    #! /bin/bash
    CUDA_VISIBLE_DEVICES=1 \
    python model_main.py \
            --model_dir=training/model \
            --pipeline_config_path=training/pipeline.config \
            --num_train_steps=25000
    
    • 之后在執行時,通過bash ***.sh 運行即可。
  • 在Python代碼中指定

    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"   #指定第一塊gpu
    
  • 在tensorflow中指定GPU的使用

# allow_soft_placement=True : 如果你指定的設備不存在,允許TF自動分配設備
# log_device_placement=True : 是否打印設備分配日志
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True) 
# 限制GPU資源的使用:兩者選其一即可
# 方式一:限制GPU使用率
config.gpu_options.per_process_gpu_memory_fraction = 0.4  #占用40%顯存  
# 方式二:動態申請顯存
config.gpu_options.allow_growth = True 
sess = tf.Session(config=config)  

參考:

Linux查看GPU信息和使用情況

指定GPU進行訓練

tensorflow中配置GPU使用


免責聲明!

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



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