使用包含多个GPU的主机时,每次可用的GPU不是固定的,需要手动指定使用哪个GPU。但是,其实可以,自动寻找可用的GPU。
实现1:基于PyTorch
# 参照 lightning (原 pytorch-lightning)
import torch
"""
寻找空闲的 GPU
"""
def find_availabel_gpu(nb=1):
for i in range(torch.cuda.device_count(), -1, -1):
gpu_mem_size = torch.cuda.get_device_properties(0).total_memory # 字节
gpu_mem_size = int(gpu_mem_size * 0.95)
# Try to allocate on device:
device = torch