GPU in PyTorch
CPU(central processing unit,中央处理器):主要包括控制器和运算器
GPU(Graphics processing unit, 图形处理器):处理统一的,无依赖的大规模数据运算
数据迁移
torch.cuda常用方法
1、torch.cuda.device_count(): 计算当前可见可用gpu数
2、torch.cuda.get_device_name():获取gpu名称
3、torch.cuda.manual_seed():为当前gpu设置随机种子
4、torch.cuda.manual_seed_all():为所有可见可用gpu设置随机种子
5、torch.cuda.set_device(): 设置主GPU为哪一个物理gpu(不推荐)
推荐:os.environ.setdefault(“CUDA_VISIBLE_DEVICES”,“2, 3”)
多GPU运算的分发并行机制
torch.nn.DataParallel
torch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0)
功能:包装模型,实现分发并行机制
主要参数:
- module:需要包装分发的模型
- device_ids:可分发的GPU,默认分发到所有可见可用GPU
- output_device:结果输出设备