pytorch查看GPU序号型号

import torch
 
print(torch.cuda.is_available())
#cuda是否可用;
 
print(torch.cuda.device_count())
#返回gpu数量;
 
print(torch.cuda.get_device_name(0))
#返回gpu名字,设备索引默认从0开始;
 
print(torch.cuda.current_device())
#返回当前设备索引;
 
### 使用PyTorch进行多机单卡训练 为了实现跨多个机器但在每台机器上仅使用一张GPU的分布式训练,在设置过程中有几个关键点需要注意。首先,初始化进程组的方式对于指定不同节点之间的通信至关重要[^1]。 在启动程序之前,环境变量`MASTER_ADDR`和`MASTER_PORT`应该被设定来指明主节点的位置。这些配置允许其他工作节点连接到这个主要位置并建立通信链接。此外,还需要定义当前运行实例的世界大小(即参与训练过程的工作节点总数)以及其自身的排名编号(rank number),这有助于区分各个执行单元并协调它们的行为。 下面是一个简单的例子展示如何通过命令行参数传递上述必要信息: ```bash export MASTER_ADDR="192.168.0.1" export MASTER_PORT="12355" python train.py --world_size=4 ``` 其中 `$RANK` 是该进程中特定于主机的部分序号;而 `--world_size` 参数则表示整个集群中有多少个这样的独立设备参与到模型同步更新之中。 接着是在Python脚本内部完成必要的初始化操作: ```python import torch.distributed as dist import os def setup(rank, world_size): os.environ['MASTER_ADDR'] = 'localhost' os.environ['MASTER_PORT'] = '12355' # 初始化进程组,默认采用gloo作为后端适用于大多数情况下的CPU/GPU混合场景 dist.init_process_group("gloo", rank=rank, world_size=world_size) if __name__ == "__main__": local_rank = int(os.getenv('LOCAL_RANK', 0)) world_size = int(os.getenv('WORLD_SIZE', 1)) setup(local_rank, world_size) # ...后续代码... ``` 当涉及到实际的数据加载部分时,可以利用`DistributedSampler`类来确保数据集能够均匀分配给不同的worker,并且每次迭代都能获得不重复也不遗漏的小批量样本集合。 最后值得注意的是,虽然这里描述的方法支持多机单卡模式,但如果硬件条件允许的话,也可以考虑进一步扩展至多卡甚至更多资源上的高效并行计算方案。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值